gpt4 book ai didi

python - 在 python 中将 n 的大值除以 10 会给出不准确的答案

转载 作者:行者123 更新时间:2023-11-28 21:44:43 25 4
gpt4 key购买 nike

我正在做一个简单的问题来解决 2^1000 的数字和。我知道,解决方案非常简单;但是看看这个代码片段:

n=2**1000
sum=0
while n>0:
sum+=n%10
n=int(n/10)
print(n)
print(sum)

上面的代码片段给出了错误的答案。但是,如果我做一个小改动:

n=2**1000
sum=0
while n>0:
sum+=n%10
n//=10 # changed
print(n)
print(sum)

那么答案是正确的。谁能告诉我这里有什么区别?

(注意:只有 n 的值较大时才会出现这种差异。)

最佳答案

看起来您正在使用 python3,// 运算符执行整数除法,而 / 运算符执行浮点除法,这在巨大的值上会失去精度。

例如:

>>> int((2**1000 / 49) * 49) == 2**1000
False

关于python - 在 python 中将 n 的大值除以 10 会给出不准确的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40289839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com