Hola, porque javascript con esto:
<script>
a=1.200+0.001;
alert(a);
</script>
Arroja esto:
1.2009999999999998
Como puedo solucionarlo?
Gracias
| |||
Porque 1.200+0.001 imprime 1.2009999999999998 Hola, porque javascript con esto: <script> a=1.200+0.001; alert(a); </script> Arroja esto: 1.2009999999999998 Como puedo solucionarlo? Gracias |
| ||||
Respuesta: Porque 1.200+0.001 imprime 1.2009999999999998 Antes de indicarte la forma de solucionar tu problema, es necesario conocer la causa que lo origina: Cita: Fuente: puntoflotante.org/basic
Iniciado por puntoflotante.org ¿Por qué al sumar mis números, como 0.1 + 0.2, en vez de dar 0.3 da un resultado extraño como 0.30000000000000004? Porque, internamente, los ordenadores usan un formato (punto flotante binario) que no puede representar de forma precisa números como 0.1, 0.2 o 0.3 de ninguna manera. Cuando el código es compilado o interpretado, tu “0.1” se redondea al número más cercano en ese formato, lo que resulta en un pequeño error de redondeo incluso antes de que se haga la operación. Ahora, bien. Puedes realizar un redondeo con métodos como Math.round() (revisa la última parte en donde se indican formas de redondeo decimal), así como el método .toFixed() con el cual puedes establecer el número de cifras que se mostrarán en la parte decimal.
__________________ «Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío». ― Ayn Rand |
Etiquetas: |