math.log(x)在Python中返回意外结果

时间:2016-02-02 21:01:03

标签: python math logarithm

我正在尝试使用Python进行一些基本的dB计算。如果我使用Excel或科学计算器:

20*log(0.1) = -20
Python中的

20*log(0.1) = -46.0517018599

进一步简化,Excel和Scientific calc:

log(0.1) = -1

的Python:

log(0.1) = -2.30258509299

我用

开始我的脚本
import math

log = math.log

有人可以解释为什么会这样,以及我如何解决它?

2 个答案:

答案 0 :(得分:11)

math.log实际上是ln(以 e 为基础)。要获得预期结果,请使用math.log(0.1, 10)math.log10(0.1)

答案 1 :(得分:1)

如果您想要基数10对数,则必须使用math.log10(0.1)

文档为HERE

Fortran,C,C ++,Java,tcl和其他许多人都使用log作为base-n对数(自然对数)