我需要一个JavaScript日志函数,但它需要以10为基数。我看不到任何关于这个的列表,所以我假设这是不可能的。有没有数学奇才知道这个问题的答案?
当前回答
如果你有一个数字x,那么Math.log(x)的使用本质上就是lnx。
要将它转换为e以外的基数,可以使用以下函数:
function(x){ return Math.log(x)/Math.log(10); }
其他回答
如果你有一个数字x,那么Math.log(x)的使用本质上就是lnx。
要将它转换为e以外的基数,可以使用以下函数:
function(x){ return Math.log(x)/Math.log(10); }
你可以简单地除以你的值的对数,和你想要的底的对数,你也可以重写Math.log方法来接受一个可选的底参数:
Math.log = (function() {
var log = Math.log;
return function(n, base) {
return log(n)/(base ? log(base) : 1);
};
})();
Math.log(5, 10);
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);
FF 25+支持数学。log10方法。您可以使用polyfill:
if (!Math.log10) Math.log10 = function(t){ return Math.log(t)/Math.LN10; };
MDN列出了支持的浏览器。
桌面浏览器 Chrome Firefox (Gecko) Internet Explorer Opera Safari 38 25(25)不支持 移动浏览器 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile 不支持不支持25.0(25)不支持iOS 8
推荐文章
- 一元加/数字(x)和parseFloat(x)之间的区别是什么?
- angularjs中的compile函数和link函数有什么区别
- 删除绑定中添加的事件监听器
- 很好的初学者教程socket.io?
- HtmlSpecialChars在JavaScript中等价于什么?
- React: 'Redirect'没有从' React -router-dom'中导出
- 如何在React中使用钩子强制组件重新渲染?
- 我如何使用Jest模拟JavaScript的“窗口”对象?
- Numpy Max vs amax vs maximum
- 我如何等待一个承诺完成之前返回一个函数的变量?
- 在JavaScript中根据键值查找和删除数组中的对象
- 使嵌套JavaScript对象平放/不平放的最快方法
- 如何以及为什么'a'['toUpperCase']()在JavaScript工作?
- 有Grunt生成index.html不同的设置
- 文档之间的区别。addEventListener和window。addEventListener?