获取OverflowError:数学范围错误(尝试计算数字的功率)

时间:2014-03-14 09:24:34

标签: python math

我试图找到表达式的确切数字。我无法找到它。以下是我尝试过的代码段。

>>> math.pow(400.0,math.pow(400.0,400.0))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: math range error

当我尝试使用numpy时,我感觉像是:

>>> np.power(400.0,np.power(400.0,400.0))
>>> inf

但我无法得到确切的数字。任何人都可以帮我解决这个问题。这对我来说是一个很大的帮助。

先谢谢。

3 个答案:

答案 0 :(得分:4)

您尝试计算的数字有1.735057357739408×10^1041个十进制数字(来自wolframalpha)。你肯定无法得到它的确切表示。 inf尽可能接近你。

答案 1 :(得分:0)

无法使用分配的大小来精确表示数字以存储整数。使用sys.maxint查看你的最大int,也有长,在62bit的盒子上你可以看到如下

>>> import sys
>>> sys.maxint
9223372036854775807
>>> type(2**63)
<type 'long'>
>>> type(2**62)
<type 'int'>
>>> sys.maxint - (2**63 - 1) == 0
True

答案 2 :(得分:-2)

您可以在此处获得确切的数字:http://www.wolframalpha.com/input/?i=400^%28400^400%29