繁体   English   中英

python循环OverflowError:(34,“结果太大”)

[英]python loop OverflowError: (34, 'Result too large')

osx上的python 2.5

对于以下代码,我收到了OverflowError:(34,“结果太大”):

x = 1.04
for i in range(2, 101):
  x += x**i
print x 

因此,我改用下面的代码; 没有错误产生。

x = 0
for i in range(1, 101):
  x += 1.04**i
print x

结果是1287.12865279,这似乎离最大浮动数英里。 如果我需要使用其他类型来处理此浮点计算,为什么后一种代码可以工作而前一种却不能呢? 我很困惑.....非常感谢您提供有关解决错误的帮助和说明。

在第一个示例中,您将x设置为计算结果。 您可以使用x作为下一个循环的基础,而不是1.04。 因此,这些值很快就会变得很大。

在结果变得太大之前,x具有以下值:

2.1216
11.6713174057
18567.4643593
2.2068000989e+21
1.15498932026e+128

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM