8

我正在使用 python,我试图找到非常大的数字的幂,但是发生的一些有趣的事情是,这会引发数学溢出

math.pow(1000, 1000)

但是下面这个似乎有效,虽然我不知道返回的值是否正确

1000**1000

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

4

2 回答 2

8

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

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

于 2013-04-12T16:56:45.127 回答
7

数学.pow

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

于 2013-04-12T16:56:31.263 回答