【问题标题】:python loop OverflowError: (34, 'Result too large')python循环溢出错误:(34,'结果太大')
【发布时间】:2013-07-19 09:35:58
【问题描述】:

osx 上的python 2.5

以下代码出现了 OverflowError: (34, 'Result too large'):

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,这似乎距离最大浮动数英里。如果我需要使用不同的类型来处理这个浮点计算,为什么后面的代码可以工作而前面的代码不行?我很困惑.....任何有关解决错误的帮助和解释将不胜感激。

【问题讨论】:

    标签: python macos


    【解决方案1】:

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

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

    2.1216
    11.6713174057
    18567.4643593
    2.2068000989e+21
    1.15498932026e+128
    

    【讨论】:

      猜你喜欢
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-15
      • 1970-01-01
      • 2017-01-21
      • 1970-01-01
      相关资源
      最近更新 更多