Esta es una clase de mucha ayuda para cuando queramos redondear números de una forma más avanzada.
AS3 cuenta con su Math.round pero esta función lo único que hace es redondear el numero al entero más cercano. Pero qué pasa si quiero redondear un número en múltiplos de 5 por ejemplo.
Para ello escribí esta sencilla clase que lo permite.
[as]
package net.tmeister.utils
{
/**
*
* Advanced Round Class
* @version 0.1
* @author Enrique Chavez aka Tmeister
*
*/
public class MathUtils
{
/**
*
* Rounds a Number to the nearest multiple
* @param number Number to Round
* @param precision multiple to be rounded
* @return A number round
*
*/
public static function roundToNear(number:Number, precision:Number)
{
return Math.round( number / precision) * precision;
}
/**
*
* Rounds a Number up to the nearest multiple
* @param number Number to Round
* @param precision multiple to be rounded
* @return A number Up round
*
*/
public static function roundToUpNear(number:Number, precision:Number)
{
return Math.ceil( number / precision) * precision;
}
/**
*
* Rounds a Number down to the nearest multiple
* @param number number Number to Round
* @param precision multiple to be rounded
* @return A number down round
*
*/
public static function roundToDownNear(number:Number, precision:Number)
{
return Math.floor( number / precision) * precision;
}
}
}
[/as]
Modo de uso es tan simple como esto.
[as]
import net.tmeister.utils.MathUtils;
const number:Number = 38
const precision:Number = 5
trace(MathUtils.roundToNear(number, precision)) // 40
trace(MathUtils.roundToUpNear(number, precision)) // 40
trace(MathUtils.roundToDownNear(number, precision)) // 35
[/as]
Enjoy 😉
Leave a Reply