Python3:long int太大而无法转换为float

时间:2014-03-09 06:11:19

标签: python-3.x

我一直在检查这里有关我遇到的同样问题的一些话题,但它们似乎没有帮助。

我的问题是当我尝试执行以下代码时,我收到标题中的错误。我该如何解决这个问题?

 d=2
 while(n != 1):        
        n = 2
        d = (math.sqrt(2 + d))
        n= (n/d)
        f = (f * (n))
 print (f)

1 个答案:

答案 0 :(得分:2)

这是因为math.sqrt是使用C sqrt函数的结果,适用于浮点数,它的大小不是无限制的。 Python无法将长整数转换为浮点数,因为它很大。 有关平方根大整数的方法,请参阅this question

更好的是,您可以使用decimal module,这是存储在base-10中的无限大小数字类型。使用decimal.Decimal(number).sqrt()查找数字的sqrt。