Math.log返回不正确的值

时间:2014-11-22 04:55:12

标签: javascript math logarithm

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

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

1 个答案:

答案 0 :(得分:3)

来自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;
}

或更一般地说:

function log(x, base) {
    return Math.log(x) / Math.log(base);
}