python--使用浮點類型float計算后,數值不對


在練習時,輸入如下代碼:

結果不准確。

原因:https://blog.csdn.net/bitcarmanlee/article/details/51179572

浮點數一個普遍的問題就是在計算機的世界中,浮點數並不能准確地表示十進制。並且,即便是最簡單的數學運算,也會帶來不可控制的后果。因為,在計算機的世界中只認識0與1

python中的decimal模塊可以解決上面的煩惱 

decimal模塊中,可以通過整數,字符串或原則構建decimal.Decimal對象。如果是浮點數,特別注意因為浮點數本身存在誤差,需要先將浮點數轉化為字符串。

 

當然精度提升的同時,肯定帶來的是性能的損失。在對數據要求特別精確的場合(例如財務結算),這些性能的損失是值得的。但是如果是大規模的科學計算,就需要考慮運行效率了。畢竟原生的float比Decimal對象肯定是要快很多的。

 

使用上述辦法解決后:

 

 

知識點總結:

1. decimal模塊:

Python提供了decimal模塊用於十進制數學計算,它具有以下特點:

  1. 提供十進制數據類型,並且存儲為十進制數序列;
  2. 有界精度:用於存儲數字的位數是固定的,可以通過decimal.getcontext().prec=x 來設定,不同的數字可以有不同的精度
  3. 浮點:十進制小數點的位置不固定(但位數是固定的)


免責聲明!

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



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