Necesito una log
función para JavaScript, pero debe ser la base 10. No puedo ver ningún listado para esto, así que supongo que no es posible. ¿Hay algún mago de las matemáticas que sepa una solución para esto?
javascript
math
logarithm
MetaGuru
fuente
fuente
Respuestas:
"Cambio de base" Fórmula / Identidad
Como
Math.log(x)
en JavaScript devuelve el logaritmo natural dex
(igual que ln (x) ), para la base 10 puede dividir entreMath.log(10)
(igual que ln (10) ):Math.LN10
es una constante precalculada incorporada paraMath.log(10)
, por lo que esta función es esencialmente idéntica a:fuente
return Math.log(n) / Math.log(base);
Fácil, simplemente cambie la base dividiéndola por el registro (10). Incluso hay una constante para ayudarte
que es lo mismo que:
fuente
Simplemente puede dividir el logaritmo de su valor y el logaritmo de la base deseada, también puede anular el
Math.log
método para aceptar un argumento base opcional:fuente
la respuesta aquí causaría un problema de precisión obvio y no es confiable en algunos casos de uso
fuente
(Math.round(Math.log(1000) / Math.LN10 * 1e6) / 1e6)
https://en.wikipedia.org/wiki/Logarithm#Change_of_base
fuente
Entonces puedes hacer
NOTA: Inicialmente pensé
Math.prototype.log10 = ...
hacer esto, pero el usuario CMS señaló que Math no funciona de esta manera, así que edité la.prototype
parte.fuente
Math
es un objeto, no una función constructora, por lo tanto, no tiene unaprototype
propiedad..prototype
parte;)FF 25+ admite un
Math.log10
método. Puede usar polyfill:MDN enumera los navegadores compatibles .
fuente
Math.log10(x)
! 😁La respuesta principal está bien para una base arbitraria, pero la pregunta está relacionada con la base de registro 10, y
Math.log10(x)
ha sido estándar en todos los navegadores desde 2015. ** Excepto IE, si eso es importante para ti por alguna razón.
fuente
Si tiene un número x, entonces use
Math.log(x)
sería esencialmente lnx.Para convertirlo a una base que no sea e, puede usar la siguiente función:
fuente
Para uso base 10
Math.log10()
.Ver documentos en: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log10
fuente