Мне нужен a log
функция для JavaScript, но это должно быть основное 10. Я не вижу списка для этого, таким образом, я предполагаю, что это не возможно. Есть ли какие-либо математические мастера там, кто знает решение для этого?
"Изменение основания" формула / тождество
Численное значение логарифма по основанию 10 можно вычислить с помощью следующего тождества.
Поскольку Math.log(x)
в JavaScript возвращает натуральный логарифм от x
(то же самое, что ln(x)), для основания 10 можно разделить на Math. log(10)
(то же самое, что ln(10)):
function log10(val) {
return Math.log(val) / Math.LN10;
}
Math.LN10
- встроенная константа для вычисления Math. log(10)
, поэтому эта функция по сути идентична:
function log10(val) {
return Math.log(val) / Math.log(10);
}
Легко, просто измените базу, разделив на журнал (10). Существует даже константа, которая поможет вам
Math.log(num) / Math.LN10;
, которая аналогична:
Math.log(num) / 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);
Math.log10 = function(n) {
return (Math.log(n)) / (Math.log(10));
}
Затем вы можете сделать
Math.log10(your_number);
ПРИМЕЧАНИЕ: Первоначально я думал сделать Math.prototype.log10 = ...
для этого, но пользователь ] CMS указала, что Math не работает таким образом, поэтому я отредактировал часть .prototype
.