Avatar ·

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