我发现在JavaScript中使用Math.log函数计算对数时出错。例如,考虑一个数字(比如0.1),实际log value of 0.1 to the base 10 is -1
。
但是当我在javascript中使用Math.log
函数时,它会返回-2.302585
。显然,这是错误的,那么,我应该编写自己的函数来计算对数,还是在JavaScript中有任何其他方法可以手动计算对数?
答案 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);
}