今天,我用math.log()函数得到了 4913 以 17 为底的对数。答案是 3,但是当我运行下面的代码时,我得到了 2.9999999999999996。
1) 是因为math.log(x, b)的计算是log(x) / log(b)吗?
2)是否有任何解决方案可以获得正确答案3?
import math
print(math.log(4913,17))
Run Code Online (Sandbox Code Playgroud)
另一个解决方案是使用“decimal”库中的 Decimal 类:
import math
from decimal import Decimal, getcontext
getcontext().prec = 6
Decimal(math.log(4913))/Decimal(math.log(17))
Run Code Online (Sandbox Code Playgroud)