擅长:python、mysql、java
<p>实际上,您应该避免对float使用equal运算符。因为计算机用二进制表示它们,而且只有浮点的近似值。在</p>
<p>如果确实需要检查两个浮点是否相等,则需要定义一个公差:</p>
<p>例如:</p>
<pre><code>def isclose(a, b, rel_tol=1e-09, abs_tol=0.0):
return abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)
</code></pre>
<p>请参考以下内容:</p>
<p><a href="https://stackoverflow.com/questions/5595425/what-is-the-best-way-to-compare-floats-for-almost-equality-in-python">What is the best way to compare floats for almost-equality in Python?</a></p>
<p>我发现了一个有趣的网站:</p>
<p><a href="http://0.30000000000000004.com/" rel="nofollow noreferrer">http://0.30000000000000004.com/</a></p>
<p>在大多数语言中,0.1+0.2不等于0.3。在</p>