#003 ActionScript [Q]Tips: Corrección punto flotante

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!