float精度丟失問題解決,用decimal.Decimal


首先來看一個浮點數運算:下面,當2個float類型數據,進行運算,就不能保證精度

a = 0.1
b = 0.3
print(a)
print(b)
print(b-a)

 
        

那么,怎么讓上面的減法值,得到我們想要的 0.2 呢?導入 decimal模塊,如果要不丟失精度Decimal類中必須要接收的是 str類型,如果還是傳入 float類型,那么精度還是會丟失

 

import decimal
a = 0.1
b = 0.3
print(decimal.Decimal(str(b)) - decimal.Decimal(str(a)))
print(decimal.Decimal(b) - decimal.Decimal(a))


免責聲明!

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



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