HOWTO · JavaScript
Redondear un número a 2 decimales en JavaScript
Este tutorial enseña cómo redondear un número como máximo a `2` lugares decimales en JavaScript.
En esta página
Este tutorial presenta cómo redondear un número a 2 posiciones decimales en JavaScript.
Utilice el método .toFixed() para redondear un número a 2 decimales en JavaScript
Aplicamos el método .toFixed() sobre el número y pasamos el número de dígitos después del decimal como argumento.
var numb = 12312214.124124124;
numb = numb.toFixed(2);
Este método no produce resultados precisos en algunos casos y existen métodos mejores que este. Si un número de rondas de 1.2, mostrará 1.20. Si se da un número como 2.005, devolverá 2.000 en lugar de 2.01.
Utilice la función Math.round() para redondear un número a 2 decimales en JavaScript
Tomamos el número y agregamos un número muy pequeño, Number.EPSILON, para asegurar el redondeo exacto del número. Luego multiplicamos por número con 100 antes de redondear para extraer solo los dos dígitos después del lugar decimal. Finalmente, dividimos el número por 100 para obtener un máximo de 2 lugares decimales.
var numb = 212421434.533423131231;
var rounded = Math.round((numb + Number.EPSILON) * 100) / 100;
console.log(rounded);
Producción :
212421434.53
Aunque este método mejora sobre .toFixed(), todavía no es la mejor solución y tampoco redondeará correctamente 1.005.
Utilice el redondeo doble para redondear un número a 2 decimales en JavaScript
En este método, utilizamos el método .toPrecision() para eliminar los errores de redondeo de coma flotante introducidos durante los cálculos intermedios en redondeo simple.
function round(num) {
var m = Number((Math.abs(num) * 100).toPrecision(15));
return Math.round(m) / 100 * Math.sign(num);
}
console.log(round(1.005));
Producción :
1.01
Uso de la función personalizada para redondear un número a 2 decimales en JavaScript
function roundToTwo(num) {
return +(Math.round(num + 'e+2') + 'e-2');
}
console.log(roundToTwo(2.005));
Esta función personalizada se encarga de todos los casos de esquina, y el redondeo de decimales como 1.005 se maneja bien con esta función.