我有以下 Python 脚本:
x = 300000000.0
while (x < x + x):
x = x + x
print "exec: " + str(x)
print "terminated" + str(x)
如果 x 是浮点数,这个看似无限的循环会很快终止。但是,如果我将 x 更改为 300000000,它会进入无限循环(在我的测试中运行时间超过一分钟)。
我认为这是因为它耗尽了可以在内存中表示的浮点数的精度。有人可以提供更详细的解释为什么会这样吗?