Как я могу указать основу для Math.log () в JavaScript?

Мне нужен a log функция для JavaScript, но это должно быть основное 10. Я не вижу списка для этого, таким образом, я предполагаю, что это не возможно. Есть ли какие-либо математические мастера там, кто знает решение для этого?

198
задан nyuszika7h 14 June 2014 в 09:49
поделиться

4 ответа

"Изменение основания" формула / тождество

Численное значение логарифма по основанию 10 можно вычислить с помощью следующего тождества.

Logarithm for base 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);
}
319
ответ дан 23 November 2019 в 05:10
поделиться

Легко, просто измените базу, разделив на журнал (10). Существует даже константа, которая поможет вам

Math.log(num) / Math.LN10;

, которая аналогична:

Math.log(num) / Math.log(10);
64
ответ дан 23 November 2019 в 05: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);
51
ответ дан 23 November 2019 в 05:10
поделиться
Math.log10 = function(n) {
    return (Math.log(n)) / (Math.log(10));
}

Затем вы можете сделать

Math.log10(your_number);

ПРИМЕЧАНИЕ: Первоначально я думал сделать Math.prototype.log10 = ... для этого, но пользователь ] CMS указала, что Math не работает таким образом, поэтому я отредактировал часть .prototype .

13
ответ дан 23 November 2019 в 05:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: