更新:謝謝你們,我沒有意識到它非常接近於零,但不完全爲零。有沒有辦法繞過它,所以我的程序將其視爲零?它拋出我的結果,因爲這個值沒有被拾取爲零。 UPDATE2:想通了,並說:數學結果應該爲零,但與直接替換相比略有偏差
from decimal import *
getcontext().prec = 6
,然後十進制(數字)固定it.Thanks大家!
我正在運行一段簡單的代碼,但得到一個奇怪的結果與一個特定的數字。它有點奇怪,因爲當我在python終端運行相同的命令時,我得到了我期望的結果。
我做了打印語句,它的命令運行,所以我可以複製/粘貼它在解釋器(python 2.7),看看結果是否相同。這裏的程序:
x = 20
for s in range(100 + 1):
for c in range(100+1):
if s == 7:
print s, '-', (c*0.01), '*', x, ' = ', (s - (c*0.01) * x)
結果看起來不錯,除了一個:
7 - 0.33 * 20 = 0.4
7 - 0.34 * 20 = 0.2
7 - 0.35 * 20 = -8.881784197e-16
7 - 0.36 * 20 = -0.2
7 - 0.37 * 20 = -0.4
當我複製/粘貼7 - 0.35 * 20
到解釋我得到0.0這正是我希望(在程序中的其他結果看似正常,但7 - 0.35 * 20和(未顯示)與14
我有點難倒了,我不是在這裏嗎類似的值
它被稱爲*解釋器*,而不是中斷者。 =) – ninjagecko 2012-03-18 16:47:49
@ninjagecko對不起,safari autocorrected我:-( – 2012-03-18 17:09:26