Math.log 返回不正确的值

Kir*_*ira 1 javascript math logarithm

我在 JavaScript 中使用 Math.log 函数计算对数时发现了一个错误。例如,考虑一个数字(比如 0.1), actual log value of 0.1 to the base 10 is -1

但是当我Math.log在 javascript 中使用函数时,它返回-2.302585. 显然,这是错误的,那么,我应该编写自己的函数来计算对数,还是 JavaScript 中是否有其他方法可以手动计算对数?

小智 5

来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log

Math.log() 函数返回数字的自然对数(以e)。

也许您想要Math.log10,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log10,但 IE 不支持。

基础数学表示,您可以通过除以 2.303 将自然对数转换为以 10 为底的对数。这个常数被定义为Math.LN10,所以:

function log(x) {
    return Math.log(x) / Math.LN10;
}
Run Code Online (Sandbox Code Playgroud)

或更一般地说:

function log(x, base) {
    return Math.log(x) / Math.log(base);
}
Run Code Online (Sandbox Code Playgroud)