擅长:python、mysql、java
<pre><code>>>> x = abs(0.5 - 0.55)
>>> x
0.050000000000000044
>>> y = abs(0.4 - 0.45)
>>> y
0.04999999999999999
</code></pre>
<p>这就是浮动的行为。<a href="https://stackoverflow.com/a/588029/9348376">Most programming languages are like this.</a>通常在比较浮点值时,更安全的做法是检查值是否在允许的错误范围内,而不是检查是否相等:</p>
<pre><code>>>> x = abs(0.5 - 0.55)
>>> allowed_error = 0.000001
>>> abs(x - 0.05) <= allowed_error
True
</code></pre>
<p>Python3.5添加了相关的<a href="https://docs.python.org/3/library/math.html#math.isclose" rel="nofollow noreferrer">^{<cd1>}</a>。你知道吗</p>