在對兩個float類型的數據進行四則運算的時候,可能會導致出現xx.99999999或x.00000001等情況。
例
在上述例子中可以看到,0.55+0.02并不等于0.57,因為這個結果在內存中其實是0.579999999或0.570000000001所以并不等于0.57。這個問題在底層為C的程序中基本都會出現,例如js,python等等
Js例子
Python例子
這種情況會直接影響到程序的準確性,此問題在遇到統(tǒng)計計算、報表程序中尤為重要,解決辦法就是用內置的四則云算函數來去計算,
Php 使用bc函數庫bcadd bcsub bcmul bcdiv
Js建議使用number.js庫
Python使用decimal模塊來解決
下一篇: Mysql觸發(fā)器