我发现对于大整数,math.pow()没有成功给出其整数版本。
(当我用 实现时,我得到了一个有问题的Karatsuba 乘法math.pow)。
例如:
>>> a_Size=32
>>> pow(10,a_size) * 1024
102400000000000000000000000000000000
>>> math.pow(10,a_size) * 1024
1.024e+35
>>> int(math.pow(10,a_size) * 1024)
102400000000000005494950097298915328
Run Code Online (Sandbox Code Playgroud)
我使用 10 ** a_size 来获得大整数的正确结果。
对于浮点数,请访问Python 中浮点数的内置 pow() 和 math.pow() 之间的区别?
请解释为什么 math.pow 会出现这种差异。只能从 23 的 10 次方及更高的次方观察到。