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 为底的对数(自然对数)
我正在尝试使用 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 为底的对数(自然对数)