我正在使用Project Euler,我正在解決計算Python中2 ** 1000
(2^1000)中數字總和的問題。我的代碼計算數字中的數字總和,使用/時出現錯誤的結果%
z = 2 ** 1000
print(z)
sum = 0
while z > 0:
x = int(z % 10)
sum += x
z = z/10
print(sum)
給出結果
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
1189
雖然Python是能夠針對z計算正確的價值,數字在z上的總和是錯誤的。爲什麼總和不正確?
的Python 2.7和3.3出現不同的結果。 Python 2給出的總和爲1366,Python 3爲1189.這是因爲Python 3從1/10返回0.1,而Python 2返回0 –
不,這是因爲浮點數轉換失去了精度 –