Мне нужна log
функция для JavaScript, но она должна быть базовой 10. Я не вижу никаких списков для этого, поэтому я предполагаю, что это невозможно. Есть ли там математические волшебники, которые знают решение для этого?
javascript
math
logarithm
MetaGuru
источник
источник
Ответы:
"Смена базы" Формула / Идентичность
Поскольку
Math.log(x)
в JavaScript возвращается натуральный логарифмx
(такой же, как ln (x) ), для базы 10 вы можете разделить наMath.log(10)
(так же, как ln (10) ):Math.LN10
является встроенной предварительно вычисленной константой дляMath.log(10)
, так что эта функция по существу идентична:источник
return Math.log(n) / Math.log(base);
Легко, просто измените базу путем деления на бревно (10). Существует даже константа, чтобы помочь вам
что так же, как:
источник
Вы можете просто разделить логарифм вашего значения и логарифм желаемой базы, также вы можете переопределить
Math.log
метод, чтобы принять необязательный базовый аргумент:источник
ответ здесь вызовет очевидную проблему точности и не является надежным в некоторых случаях использования
источник
(Math.round(Math.log(1000) / Math.LN10 * 1e6) / 1e6)
https://en.wikipedia.org/wiki/Logarithm#Change_of_base
источник
Тогда вы можете сделать
ПРИМЕЧАНИЕ. Сначала я думал сделать
Math.prototype.log10 = ...
это, но пользователь CMS указал, что Math не работает таким образом, поэтому я отредактировал эту.prototype
часть.источник
Math
является объектом, а не функцией конструктора, поэтому у него нетprototype
свойства..prototype
часть;)FF 25+ поддерживает
Math.log10
метод. Вы можете использовать polyfill:MDN перечисляет поддерживаемые браузеры .
источник
Math.log10(x)
! 😁Верхний ответ подходит для произвольной базы, но вопрос касается базы 10 журналов и
Math.log10(x)
является стандартным для всех браузеров с 2015 года. ** За исключением IE, если это важно для вас по какой-то причине.
источник
Если у вас есть номер х, то используйте
Math.log(x)
существу будет lnx.Чтобы преобразовать его в базу, отличную от e, вы можете использовать следующую функцию:
источник
Для базы 10 использовать
Math.log10()
.См. Документы по адресу: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log10.
источник