errores en cálculos de punto flotante no son desconocidas en otros lenguajes de programación. Estos por lo general ocurren en números de gran valor. JavaScript produce resultados interesantes durante las operaciones con valores tan bajos como 0.06 + 0.01 . La mayoría de las personas ofrecerían 0,07 como la solución a esta ecuación. JavaScript resuelve esta respuesta como 0,06999999999999 . Cerca, pero no lo suficiente para su aplicación comercial .
Formato y precisión
JavaScript ofrece dos funciones, toFixed () y toPrecision () que eliminan los problemas de visualización asociados con resultados impredecibles . La función toFixed () permite determinar el número de dígitos , el programa muestra después del punto decimal. En el caso de la moneda , con el argumento de num.toFixed ( 2 ) muestra sólo los primeros dos dígitos después del punto decimal , con redondeo automático. El toPrecision () función muestra una respuesta con el número total de dígitos especificado en el argumento sin tener en cuenta su relación con el punto decimal.
La Causa
los errores de redondeo se introducen cuando los números decimales se convierten en cadenas binarias. Este proceso es necesario porque un equipo sólo puede trabajar con unos y ceros . Muchos lenguajes de superar este error de redondeo con el uso de tipos de datos . Mediante la especificación de cómo y con qué precisión de una variable se almacena , lenguajes como C y Java reducir estos errores . Cuando se declara una variable en JavaScript , no se especifica ningún tipo. Esto da lugar a caracteres , cadenas, enteros y flotantes tratados más o menos igual .
Solución
La estrategia más utilizada para superar los errores de punto flotante en JavaScript es multiplicar ambas variables en 100 antes de realizar un cálculo, utilizando la función round () para reducir el error de punto flotante y dividiendo el producto de esta operación por 100 antes de la impresión de la respuesta.