Pregunta

¿Qué tipo de errores? ¿Cómo puedo solucionar esto?

1.1 - 1 = 0.10000000000000009

1.0000001+1 = 2.0000001000000003

¿Fue útil?

Solución

Puedes resolver esto usando .toFixed() método
Es el problema del punto flotante Echa un vistazo aquí

p.ej:

<script>
alert((1.234567890).toFixed(2))
</script>

Otros consejos

JavaScript utiliza el tipo de datos flotar. Los números de flotación nunca son exactos, así que no use == cuando compare los datos en su lugar, use <y/o>.

Desde el comp.lang.javaScript Preguntas frecuentes(que parecen estar abajo en este momento):

Los números de ECMAScript se representan en binario como IEEE-754 (IEC 559) dobles, con una resolución de 53 bits, dando una precisión de 15-16 dígitos decimales; enteros hasta justo 9e15 son precisos, pero pocas fracciones decimales son. Dado esto, la aritmética es lo más exacta posible, pero no más. Las operaciones en enteros son exactos si el resultado verdadero y todos los intermedios son enteros dentro de ese rango.

En particular, los resultados no intencionales no se deben comparar normalmente para la igualdad, y los resultados calculados no enteros comúnmente necesitan redondeo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top