擅长:python、mysql、java
<p>使用<a href="http://docs.python.org/2/library/fractions.html">^{<cd1>} module</a>来简化分数:</p>
<pre><code>>>> from fractions import Fraction
>>> Fraction(3.2)
Fraction(3602879701896397, 1125899906842624)
>>> Fraction(3.2).limit_denominator()
Fraction(16, 5)
</code></pre>
<p>从<a href="http://docs.python.org/2/library/fractions.html#fractions.Fraction.limit_denominator">^{<cd2>} function</a>:</p>
<blockquote>
<p>Finds and returns the closest <code>Fraction</code> to <code>self</code> that has denominator at most max_denominator. This method is useful for finding rational approximations to a given floating-point number</p>
</blockquote>
<p>浮点数的精度有限,不能精确地表示许多数字;您看到的是一个舍入表示,但实数是:</p>
<pre><code>>>> format(3.2, '.50f')
'3.20000000000000017763568394002504646778106689453125'
</code></pre>
<p>因为浮点数表示为二进制分数的和;1/5只能通过将1/8+1/16+1/128+个二进制分数相加来表示,以增加2的指数。</p>