Math.log()
基线 广泛可用
此功能已得到良好建立,并在许多设备和浏览器版本中有效。它自 2015 年 7 月.
报告反馈
试一试
语法
\forall x > 0,\;\mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{the unique } y \text{ such that } e^y = x
Math.log(x)
js
∀
-
参数
大于或等于 0 的数字。
返回值
描述
x
的自然对数(以 e 为底)。如果 x
是 ±0,则返回 -Infinity
。如果 x < 0
,则返回 NaN
。
由于 log()
是 Math
的静态方法,因此您始终将其用作 Math.log()
,而不是用作您创建的 Math
对象的方法(Math
不是构造函数)。
如果您需要 2 或 10 的自然对数,请使用常量 Math.LN2
或 Math.LN10
。如果您需要以 2 或 10 为底的对数,请使用 Math.log2()
或 Math.log10()
。如果您需要以其他底数的对数,请使用 Math.log(x) / Math.log(otherBase)
,如下面的示例所示;您可能希望预先计算 1 / Math.log(otherBase)
,因为 Math.log(x) * constant
中的乘法速度要快得多。
示例
请注意,非常接近 1 的正数可能会因精度损失而导致其自然对数的精度降低。在这种情况下,您可能希望使用 Math.log1p
。
\forall x > 0,\;\mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{the unique } y \text{ such that } e^y = x
Math.log(-1); // NaN
Math.log(-0); // -Infinity
Math.log(0); // -Infinity
Math.log(1); // 0
Math.log(10); // 2.302585092994046
Math.log(Infinity); // Infinity
使用 Math.log()
使用其他底数的 Math.log()):
\forall x > 0,\;\mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{the unique } y \text{ such that } e^y = x
function getBaseLog(x, y) {
return Math.log(y) / Math.log(x);
}
\log_x y
规范
如果您运行 getBaseLog(10, 1000) ,它将返回 2.9999999999999996 ,这是由于浮点舍入造成的,但仍然非常接近实际答案 3。 |
---|
规范 # ECMAScript 语言规范 |
浏览器兼容性
sec-math.log