關於python浮點數精度問題計算誤差的原因分析


在python中使用浮點數運算可能會出現如下問題

a = 0.1+0.2
print(a)

輸出的結果是

0.30000000000000004

原因如下:

出現上面的情況,主要還是因浮點數在計算機中實際是以二進制保存的,有些數不精確。
比如說: 0.1是十進制,轉化為二進制后它是個無限循環的數:
0.00011001100110011001100110011001100110011001100110011001100
而python是以雙精度(64)位來保存浮點數,多余的位會被截掉,所以看到的是0.1,但在電腦上實際保存的已不是精確的0.1,參與運算后,也就有可能點誤差。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM