Redondeo de números a dos decimales en JavaScript: ¿cómo hacerlo correctamente?
¡Hola a todos! Soy nuevo en JavaScript y me encontré con el problema de redondear números. Necesito mostrar precios en el carrito de una tienda online, y quiero que siempre se muestren con un máximo de dos decimales. Pero si el número es entero (por ejemplo, 10), quiero mostrar solo "10", sin decimales.
Intenté usar `toFixed(2)`, pero siempre agrega ceros: `(10).toFixed(2)` devuelve `"10.00"`, y yo necesito `"10"`. Probé `Math.round(num * 100) / 100` – esto funciona, pero a veces da resultados extraños debido a la imprecisión de los números de punto flotante. Por ejemplo, `Math.round(1.005 * 100) / 100` devuelve `1`, no `1.01`, como esperaba.
¿Podrían indicarme cómo redondear correctamente un número a dos decimales, pero sin mostrar ceros innecesarios si no se necesitan? Necesito una solución confiable que funcione con cualquier número, incluidos negativos y valores muy pequeños (por ejemplo, `0.0001` debería convertirse en `0`, no en `0.00`).
Ejemplos de lo que quiero obtener:
- `10