I need a log
function for JavaScript, but it needs to be base 10. I can\'t see any listing for this, so I\'m assuming it\'s not possible. Are there any math wiz
Math.log10(x)
!
the answer here would cause obvious precision problem and is not reliable in some use cases
> Math.log(10)/Math.LN10
1
> Math.log(100)/Math.LN10
2
> Math.log(1000)/Math.LN10
2.9999999999999996
> Math.log(10000)/Math.LN10
4
const logBase = (n, base) => Math.log(n) / Math.log(base);
https://en.wikipedia.org/wiki/Logarithm#Change_of_base
"Change of Base" Formula / Identity
The numerical value for logarithm to the base 10 can be calculated with the following identity.
Since Math.log(x)
in JavaScript returns the natural logarithm of x
(same as ln(x)), for base 10 you can divide by Math.log(10)
(same as ln(10)):
function log10(val) {
return Math.log(val) / Math.LN10;
}
Math.LN10
is a built-in precomputed constant for Math.log(10)
, so this function is essentially identical to:
function log10(val) {
return Math.log(val) / Math.log(10);
}