我需要一个JavaScript日志函数,但它需要以10为基数。我看不到任何关于这个的列表,所以我假设这是不可能的。有没有数学奇才知道这个问题的答案?
当前回答
很简单,只要改变底数除以log(10)就可以了。甚至有一个常数来帮助你
Math.log(num) / Math.LN10;
也就是:
Math.log(num) / Math.log(10);
其他回答
如果你有一个数字x,那么Math.log(x)的使用本质上就是lnx。
要将它转换为e以外的基数,可以使用以下函数:
function(x){ return Math.log(x)/Math.log(10); }
“改变基础”公式/单位
以10为底的对数的数值可以计算出来 用下面的标识。
由于Math.log(x)在JavaScript中返回x的自然对数(与ln(x)相同),对于以10为底的基数,您可以除以Math.log(10)(与ln(10)相同):
function log10(val) {
return Math.log(val) / Math.LN10;
}
数学。LN10是Math.log(10)的内置预计算常数,因此这个函数本质上与:
function log10(val) {
return Math.log(val) / Math.log(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);
很简单,只要改变底数除以log(10)就可以了。甚至有一个常数来帮助你
Math.log(num) / Math.LN10;
也就是:
Math.log(num) / Math.log(10);
推荐文章
- JavaScript: override alert()
- 重置setTimeout
- 如何确保<select>表单字段被禁用时提交?
- jQuery有不聚焦的方法吗?
- 反应钩子-正确的方式清除超时和间隔
- TypeScript枚举对象数组
- 在React.js中正确的img路径
- 在React.js中更新组件onScroll的样式
- onClick ReactJS调用多个函数
- 如何在JavaScript中转义单引号(')?
- Ng-repeat结束事件
- 谷歌MAP API未捕获的类型错误:无法读取属性“offsetWidth”为空
- 模糊vs聚焦-有什么真正的区别吗?
- 如何使用JavaScript创建和样式一个div ?
- 清除JavaScript中的缓存