2012-09-20 82 views
47

Duplicar posibles:
Is JavaScript's Math broken?suma flotador con javascript

estoy calculando la suma de varios valores de coma flotante utilizando Javascript y ... me he dado cuenta de una cosa extraña que nunca visto antes de. La ejecución de este código:

parseFloat('2.3') + parseFloat('2.4') 

Obtengo 4,699999999999999

Entonces ... ¿qué SOULD hago para obtener un valor correcto? (Se supone que esto es incorrecto ...)

+0

no soy diciendo que esto ayudará con esta pregunta. Pero siempre me gusta señalar [este artículo] (http://www.codeproject.com/Articles/182416/A-Collection-of-JavaScript-Gotchas) en momentos como este – musefan

+2

¿Por qué crees que la aritmética de coma flotante era ¿exacto? En serio, las preguntas sobre la inexactitud de punto flotante se publican con extraordinaria frecuencia, y debemos averiguar las razones y hacer algo al respecto. Entonces, ¿alguien te dijo que la aritmética de coma flotante era exacta? ¿Acabas de suponer? ¿Sabes por qué lo supones? Si lo piensas, ¿cómo implementarías la aritmética de coma flotante? ¿Sería exacto si lo implementaras? ¿Cómo? –

+0

Al buscar esto, no veo cómo se duplica esta pregunta: el problema no se resuelve en la pregunta marcada como duplicada, y aún así, en todo el SO, no he encontrado una solución adecuada para el mismo problema. – Malavos

Respuesta

7
(parseFloat('2.3') + parseFloat('2.4')).toFixed(1); 

su va a dar solución supongo