擅长:python、mysql、java
<p>这是一个与<code>float</code>精度有关的问题。经过计算,我得到:</p>
<pre><code>sum == 0.009999999999999133
</code></pre>
<p>也就是说,比一欧元美分稍微少一点(注意,你不应该叫它<code>sum</code>,因为这样你就隐藏了内置的<code>sum</code>函数,并且不能使用<code>sum(coins)</code>来计算总数)。你可以用一种宽容的方法来解决这个问题</p>
^{pr2}$
<p>与</p>
<pre><code>while (sum - i) > -0.001: # allow for slight inaccuracy
</code></pre>
<p>同样,最好使用公差来比较浮动,而不是:</p>
<pre><code>if a == b:
</code></pre>
<p>使用</p>
<pre><code>if abs(a - b) < tolerance:
</code></pre>