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
You can simply divide the logarithm of your value, and the logarithm of the desired base, also you could override the Math.log
method to accept an optional base argument:
Math.log = (function() {
var log = Math.log;
return function(n, base) {
return log(n)/(base ? log(base) : 1);
};
})();
Math.log(5, 10);
Math.log10 = function(n) {
return (Math.log(n)) / (Math.log(10));
}
Then you can do
Math.log10(your_number);
NOTE: Initially I thought to do Math.prototype.log10 = ...
to do this, but user CMS pointed out that Math doesn't work this way, so I edited out the .prototype
part.
For base 10 use Math.log10()
.
See docs at: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log10
Easy, just change the base by dividing by the log(10). There is even a constant to help you
Math.log(num) / Math.LN10;
which is the same as:
Math.log(num) / Math.log(10);
If you have a number x, then use of Math.log(x)
would essentially be lnx.
To convert it to a base other than e, you can use the following function :
function(x){ return Math.log(x)/Math.log(10); }
FF 25+ supports a Math.log10 method. You may to use polyfill:
if (!Math.log10) Math.log10 = function(t){ return Math.log(t)/Math.LN10; };
MDN lists the supported browsers.
Desktop Browsers
Chrome Firefox (Gecko) Internet Explorer Opera Safari 38 25 (25) Not supported 25 7.1
Mobile Browsers
Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Not supported Not supported 25.0 (25) Not supported Not supported iOS 8