擅长:python、mysql、java
<p>Python脚本不会执行错误的算法,它只是浮点算法的方式。你知道吗</p>
<p>使用<code>float</code>(Python中的双浮点精度)时需要注意的主要原则是,它是实际值的近似值。除非这个值的分母是2次方,比如1,2,4,0.5,0.25等等,否则这个值不能用<code>float</code>精确地表示。它总是<em>近似值</em>,直到第15/16位。你知道吗</p>
<p>因此,所有结果:</p>
<pre><code>0.439
0.07100000000000001
1.3877787807814457e-17
</code></pre>
<p>是正确的。。。最高达15/16位有效数字,即:</p>
<pre><code>0.439
0.0710000000000000
0.000000000000000 #(thus you have 1 e-17 as your 17-th digit)
</code></pre>
<p><code>float</code>不保证精度超过第15/16位</p>
<p>如果您确实需要比第15-16位更高的精度,请考虑使用<code>decimal</code></p>