Cuando tenemos que trabajar con números reales (double, float, punto flotante, o como los queramos llamar) y no solamente eso, sino que tenemos que mostrarlos por pantalla, muchas veces nos llevamos sorpresas poco divertidas, como que donde era 2 aparece 1.99, o donde era 2.98 aparece 2.96, etc.
Casos muy normales para esto son el trabajo con números que representan cantidades monetarias… (no existe 1,999 € de cara a un usuario final) o el trabajo con sistemas métricos como podría ser el longitud (metros, centímetros, etc.)
Aquí os dejamos una útil función que permite «reajustar» el problema del punto flotante que os indicamos, y que a nosotros ya nos ha sido útil unas cuantas veces:
/**
* @author marcos
* @since 13/09/2008
*
* Función que corrige el punto flotante en el número decimales indicado.
*
* @param num: numero que se quiere corregiro
* @param decimales: cantidad de decimales para la corrección resultante
*
*/
function correccionErrorPuntoFlotante(num:Number, decimales:Number):Number
{
var correccion:Number = Math.pow(10, decimales);
return Math.round(correccion* num) / correccion;
}
Por ejemplo con esta función el valor de corrección de 1.99799 a 3 decimales sería: 1.998
Hasta el próximo tip de veranito!
![Diseño Gráfico, Web & Multimedia Asturias, Oviedo // [Q] interactiva](http://q-interactiva.com/wp-content/uploads/logo_Q_100.png)