這個問題在這里已經有了答案: 浮點數學壞了嗎? (31 個回答) 6 小時前關閉。
我寫這個函式是為了避免在計算器上打字,讓我的作業更快,但發生了一些非常奇怪的事情:
def G(x):
return 1 - x ** 2 - (1-x) ** 2
G(1/5) 給出 0.31999999999999984
但顯然 25/25 - 1/25 - 16/25 是 8/25 = 0.32
uj5u.com熱心網友回復:
您可以使用該decimal模塊作為解決方法。
十進制模塊為快速正確舍入的十進制浮點運算提供支持。與 float 資料型別相比,它具有多種優勢。
from decimal import Decimal;
print(float(G(Decimal(1)/Decimal(5))))
0.32
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/350541.html
