Math.log错误的结果为大数

时间:2019-04-24 19:37:27

标签: python-3.x algorithm math

.math.log2给了我一些高数值的错误结果,并通过在线py解释器和本地计算机对其进行了测试。

math.log

我缺少某些东西或某些错误吗?

2 个答案:

答案 0 :(得分:0)

您错过了math.log给您IEEE floating point最多52位精度的情况。

您的答案在表述范围内是正确的。

答案 1 :(得分:0)

实际答案大约是 72.0000000000000000000003

绝对误差小于该范围内的浮点误差,您得到log2(72)中最接近的floating point approximation,计算机可以存储64位浮点数。

如果要检查整数是否为2的整数次幂,则可以检查整数的最左位是否为1。

if 1 << (x.bit_length() - 1) == x:
    print("x is a power of 2")