为什么其中一个代码段工作而另一个抛出溢出

时间:2013-04-12 16:54:57

标签: python exponential

我正在使用python,我正在努力寻找真正大数字的能力,但有趣的是,这会引发数学溢出

math.pow(1000, 1000)

但是下面的内容似乎有效但我不知道返回的值是否正确

1000**1000

任何人都知道为什么会发生这种情况

2 个答案:

答案 0 :(得分:8)

简单,math.pow()方法使用C float库,而**幂运算符使用整数数学。

这两种方法有不同的局限性。 Python int大小仅受操作系统允许Python拥有多少内存的限制,浮点数受计算机体系结构限制,请参阅sys.float_info.max

答案 1 :(得分:7)

math.pow

  

与内置**运算符不同,math.pow()将其参数转换为float类型。使用**或内置pow()函数计算精确的整数幂。