python3的float数精度_python浮点数精度问题
生活随笔
收集整理的這篇文章主要介紹了
python3的float数精度_python浮点数精度问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python浮點數的計算,結果并不像我們想象的那樣,比如:
>>> 0.25+0.25-0.4
0.09999999999999998
>>> 0.6+0.3-0.26
0.6399999999999999
在計算機上面運算的結果是我們實際期望的結果并不一致,導致這樣的根本原因就是: 計算機 十進制與二進制之間的轉換
計算機只認識二進制,十進制之間的運算,需要將十進制轉換為二進制在進行二進制之間的運算
python中有兩種方法可以解決浮點數精度問題
第一種: 使用decimal模塊
>>> import decimal
>>> a= decimal.Decimal('0.25')
>>> b= decimal.Decimal('0.25')
>>> c= decimal.Decimal('0.4')
>>> print(a+b-c)
0.10
可以看到,相比普通運算的結果,使用 decimal 模塊得到的結果更精確。
第二種: fractions 模塊
>>> from fractions import Fraction
>>> 10/3
3.3333333333333335
>>> print(Fraction(10,3))
10/3
可以看出,通過 fractions 模塊能很好地解決浮點類型數之間運算的問題
總結
以上是生活随笔為你收集整理的python3的float数精度_python浮点数精度问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎样给证件照换正装
- 下一篇: github设置中文_【Github】1