我一直在检查这里有关我遇到的同样问题的一些话题,但它们似乎没有帮助。
我的问题是当我尝试执行以下代码时,我收到标题中的错误。我该如何解决这个问题?
d=2
while(n != 1):
n = 2
d = (math.sqrt(2 + d))
n= (n/d)
f = (f * (n))
print (f)
答案 0 :(得分:2)
这是因为math.sqrt是使用C sqrt函数的结果,适用于浮点数,它的大小不是无限制的。 Python无法将长整数转换为浮点数,因为它很大。 有关平方根大整数的方法,请参阅this question。
更好的是,您可以使用decimal module,这是存储在base-10中的无限大小数字类型。使用decimal.Decimal(number).sqrt()
查找数字的sqrt。