我需要一个JavaScript日志函数,但它需要以10为基数。我看不到任何关于这个的列表,所以我假设这是不可能的。有没有数学奇才知道这个问题的答案?
当前回答
以10为基数使用Math.log10()。
查看文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log10
其他回答
你可以简单地除以你的值的对数,和你想要的底的对数,你也可以重写Math.log方法来接受一个可选的底参数:
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));
}
然后你就可以
Math.log10(your_number);
注:最初我想做Math.prototype。Log10 =…但是用户CMS指出Math不是这样工作的,所以我编辑掉了.prototype部分。
const logBase = (n, base) => Math.log(n) / Math.log(base);
https://en.wikipedia.org/wiki/Logarithm#Change_of_base
很简单,只要改变底数除以log(10)就可以了。甚至有一个常数来帮助你
Math.log(num) / Math.LN10;
也就是:
Math.log(num) / Math.log(10);
以10为基数使用Math.log10()。
查看文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log10