擅长:python、mysql、java
<p>只需使用内置功能:</p>
<pre><code>In [10]: 2.5.as_integer_ratio() # get representation as fraction
Out[10]: (5, 2)
In [11]: (2).bit_length() - 1 # convert 2**M to M
Out[11]: 1
</code></pre>
<p>请注意,所有非无限、非NaN浮点都是并矢有理数,因此我们可以依赖分母是2的精确幂。你知道吗</p>