math.log(x) returns Python 中的意外结果

math.log(x) returns unexpected results in Python

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

20*log(0.1) = -20

在 Python 中:

20*log(0.1) = -46.0517018599

为了进一步简化,Excel 和科学计算:

log(0.1) = -1

Python:

log(0.1) = -2.30258509299

我用

开始我的脚本
import math

log = math.log

谁能解释这是为什么以及我该如何解决?

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

如果你想要以 10 为底的对数,你必须使用 math.log10(0.1)

文档是 HERE

Fortran、C、C++、Java、tcl 和许多其他语言它们都使用 log 作为以 n 为底的对数(自然对数)