raiz logaritmo log10 log cuadrada codigo javascript math logarithm

log10 - logaritmo javascript



¿Cómo puedo especificar la base para Math.log() en JavaScript? (8)

Necesito una función de log para JavaScript, pero debe ser la base 10. No puedo ver ninguna lista para esto, así que estoy asumiendo que no es posible. ¿Hay magos matemáticos que conocen una solución para esto?


Fácil, simplemente cambie la base dividiendo por el registro (10). Incluso hay una constante para ayudarte

Math.log(num) / Math.LN10;

que es lo mismo que:

Math.log(num) / Math.log(10);


FF 25+ es compatible con un método Math.log10 . Puede usar polyfill:

if (!Math.log10) Math.log10 = function(t){ return Math.log(t)/Math.LN10; };

MDN enumera los navegadores compatibles .

Navegadores de escritorio

Chrome Firefox (Gecko) Internet Explorer Opera Safari 38 25 (25) Not supported 25 7.1

Navegadores móviles

Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Not supported Not supported 25.0 (25) Not supported Not supported iOS 8


Si tiene un número x, entonces el uso de Math.log(x) sería esencialmente lnx.

Para convertirlo a una base que no sea e, puede usar la siguiente función:

function(x){ return Math.log(x)/Math.log(10); }


Simplemente puede dividir el logaritmo de su valor y el logaritmo de la base deseada, también puede anular el método Math.log para aceptar un argumento base opcional:

Math.log = (function() { var log = Math.log; return function(n, base) { return log(n)/(base ? log(base) : 1); }; })(); Math.log(5, 10);


la respuesta aquí causaría problemas obvios de precisión y no es confiable en algunos casos de uso

> Math.log(10)/Math.LN10 1 > Math.log(100)/Math.LN10 2 > Math.log(1000)/Math.LN10 2.9999999999999996 > Math.log(10000)/Math.LN10 4


Como Math.log(x) en JavaScript devuelve el logaritmo natural de x (igual que ln (x) ), para la base 10 puede dividir por Math.log(10) (igual que ln (10) ):

function log10(val) { return Math.log(val) / Math.LN10; }

Math.LN10 es una constante Math.log(10) para Math.log(10) , por lo que esta función es esencialmente idéntica a:

function log10(val) { return Math.log(val) / Math.log(10); }


Math.log10 = function(n) { return (Math.log(n)) / (Math.log(10)); }

Entonces puedes hacer

Math.log10(your_number);

NOTA: Inicialmente pensé en hacer Math.prototype.log10 = ... para hacer esto, pero el usuario señaló que Math no funciona de esta manera, así que .prototype parte .prototype .


Math.logBase = function(n, base) { return Math.log(n) / Math.log(base); };