Redondear un número a 2 decimales en JavaScript

Harshit Jindal 12 octubre 2023
  1. Utilice el método .toFixed() para redondear un número a 2 decimales en JavaScript
  2. Utilice la función Math.round() para redondear un número a 2 decimales en JavaScript
  3. Utilice el redondeo doble para redondear un número a 2 decimales en JavaScript
  4. Uso de la función personalizada para redondear un número a 2 decimales en JavaScript
Redondear un número a 2 decimales en JavaScript

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.

Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn

Artículo relacionado - JavaScript Number