python - 为什么这些代码段之一工作而另一个抛出溢出

标签 python exponential

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

math.pow(1000, 1000)

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

1000**1000

有人知道为什么会这样吗

最佳答案

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

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

关于python - 为什么这些代码段之一工作而另一个抛出溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15976893/

相关文章:

python - random.random() 在不同的机器上生成不同的数字

Python 多处理 : two threads stopping each other

Python TypeError - 预期字节但在尝试创建签名时得到 'str'

python - 提高python算法的速度

Python psycopg2 设置约束可延迟

Python 指数衰减 curve_fit 给我一个线性拟合

Java指数分布

python - 将 '6E+007' 转换为十进制

python - 我的算法的运行时间复杂度 - 我如何计算它并进一步优化算法?

c++ - (C++) 2^32=0 但 2^31 * 2 有效