0
我試圖在運行到100.循環增加0.2
值恆定x where x = 8
是代碼如何在Python中正確添加浮動數字?
x = 8
>>> for i in range(100):
... x += 0.2
...
>>> x
,但每次我得到不同的答案和計算總是不正確。我讀了Floating Point Arithmetic Issue and Limitations,但應該有一些解決方法。我可以使用doubles
(如果它們存在)?我使用Python 2.7
UPDATE:
import time
x=1386919679
while(1):
x+=0.02
print "xx %0.9f"%x
b= round (x,2)
print "bb %0.9f"%b
time.sleep(1)
輸出
xx 1386933518.586801529
bb 1386933518.589999914
xx 1386933518.606801510
bb 1386933518.609999895
xx 1386933518.626801491
bb 1386933518.630000114
所需的輸出 我想正確的輸出,我知道如果只是寫print x
這將是正確的。但我的應用程序要求我應該以9精度打印結果。我是新手,所以請親切。
你能告訴我你期望'sum'做什麼嗎?此外,我想知道如果你真的有浮點精度或與您的代碼的問題?你能給出你期望的結果的具體例子,以及你得到的各種不同的,不正確的結果嗎? – KobeJohn
此問題及其中的代碼對於預期結果尚不清楚。你在期待什麼?提供的代碼將「正確」計算8 + 0.2 * 100,這是不是打算? – arrdem
@kobejohn對不起,我在這裏錯誤地複製了它。我只想看看已經添加了什麼。 –