Redondeo a dos decimales en JavaScript: la solución correcta
¡Hola a todos! Me encontré con una tarea aparentemente simple: necesito redondear números a dos decimales, pero solo si es necesario. Es decir, si el número es 10.5 — dejarlo como está, y 10.456 — redondearlo a 10.46.
El problema es que los métodos estándar de JavaScript se comportan de manera extraña. Por ejemplo, `toFixed(2)` devuelve un string, no un número, y además puede dar resultados inesperados debido a imprecisiones de los números de punto flotante.
```javascript
// Problema con toFixed
console.log(1.005.toFixed(2)); // Muestra "1.00" en lugar del esperado "1.01"
console.log(0.1 + 0.2); // 0.30000000000000004
```
Probé usar `Math.round(num * 100) / 100`, pero también falla:
```javascript
// Problema con Math.round
console.log(Math.round(1.005 * 100) / 100); // 1 en lugar de 1.01
console.log(Math.round(1.255 * 100) / 100); // 1.25 en lugar de 1.26
```
¿Alguien sabe cómo redondear números a dos decimales de manera correcta y confiable teniendo en cuenta todas las peculiaridades de JavaScript? Necesito que el resultado
No answers yet.
Inicia sesión para dejar una respuesta