com.neolao.data.NumberUtils

Méthodes utiles liées aux nombres.

Méthodes

Visibilité Return Nom Param 1 Param 2 Param 3 Param 4 Description
static public String nChar pNum:Number pN:Number pZero:Boolean pRight:Boolean Formate un nombre sur n caractères.
static public String twoChar pNum:Number Formate un nombre sur 2 caractères 1)
static public Number radian pDegree:Number Convertion d'un degree en radian
static public Number degree pRadian:Number Convertion d'un radian en degree
static public Number length pNum:Number Indique le nombre de chiffre d'un nombre
static public Boolean divisible pNum:Number pDiviseur:Number Indique si un nombre est divisible par un autre
static public Void incrementLimit pObjet:Object pPropriete:String pLimite:Number pNombre:Number Incrémenter une propriété sans dépasser la limite
static public Void decrementLimit pObjet:Object pPropriete:String pLimite:Number pNombre:Number Décrémenter une propriété sans dépasser la limite
static public Number round pNumber:Number pDecimal:Number Arrondir un nombre en spécifiant le nombre de décimales

Source

/**
 * Méthodes utiles liées aux nombres
 * @author 		neolao <neo@neolao.com>
 * @version 		2.2 (30/01/2004)
 * @link		http://resources.neolao.com/flash/classes/data/NumberUtils			
 * @license		http://creativecommons.org/licenses/by-sa/2.0/	
 */
class com.neolao.data.NumberUtils {
	public static var className:String = "NumberUtils";
	public static var version:String = "2.2";
 
	/*========================== METHODES PUBLIQUES ==========================*/
	/*========================================================================*/
	/**
	 * Formate un nombre sur n caractères.
	 * @param pNum Le nombre à formater
	 * @param pN Le nombre de caractère total
	 * @param pZero true pour utiliser des zero, false pour des espaces [option = true]
	 * @param pRight true pour compléter à droite, sinon à gauche [option = false]
	 * @return Le nombre sous forme chaine de pN caractères
	 */
	public static function nChar(pNum:Number, pN:Number, pZero:Boolean, pRight:Boolean):String {
		var vAfficheZero:Boolean = (pZero == undefined)?true:pZero;
		var vDiff:Number = pN - pNum.toString().length;
		var vReste:String = "";
 
		if(vDiff > 0){
			for(var i=0; i<vDiff; i++){
				vReste += (vAfficheZero)?"0":" ";
			}
		}
		return (pRight)?pNum + vReste:vReste + pNum;
	}
	/**
	 * Formate un nombre sur 2 caractères (si le nombre est inférieur à 10, un 0 est ajouté à gauche)
	 * @param pNum Le nombre à formater
	 * @return Le nombre sur 2 caractères
	 */
	public static function twoChar(pNum:Number):String{
		return nChar(pNum, 2);
	}
	/**
	 * Convertion d'un degree en radian
	 * @param pDegree Le nombre à convertir
	 * @return L'équivalent radian
	 */
	public static function radian(pDegree:Number):Number{
		return pDegree*Math.PI/180;
	}
	/**
	 * Convertion d'un radian en degree
	 * @param pRadian Le nombre à convertir
	 * @return L'équivalent degree
	 */
	public static function degree(pRadian:Number):Number{
		return pRadian*180/Math.PI;
	}
	/**
	 * Indique le nombre de chiffre d'un nombre
	 * @param pNum Le nombre à traiter
	 * @return La taille de ce nombre
	 */
	public static function length(pNum:Number):Number{
		return pNum.toString().length;
	}
	/**
	 * Indique si un nombre est divisible par un autre
	 * @param pNum Le nombre à diviser
	 * @param pDiviseur Le diviseur
	 * @return true si pNum est divisible par pDiviseur, sinon false
	 */
	public static function divisible(pNum:Number, pDiviseur:Number):Boolean{
		var vOperation:String = String(pNum/pDiviseur);
 
		return (vOperation.indexOf(".") == -1)?true:false;
	}
	/**
	 * Décrémenter une propriété sans dépasser la limite
	 * @param pObjet L'objet qui possède la propriété à modifier
	 * @param pPropriete La propriété à modifier
	 * @param pLimite La limite de la décrémentation
	 * @param pNombre De combien il faut décrémenter
	 */
	public static function decrementLimit(pObjet:Object, pPropriete:String, pLimite:Number, pNombre:Number){
		var vValeurCourante:Number = pObjet[pPropriete];
		var vValeurSuivante:Number = vValeurCourante - pNombre;
 
		if(vValeurSuivante < pLimite){
			pObjet[pPropriete] = pLimite;
		}else{
			pObjet[pPropriete] = vValeurSuivante;
		}
	}
	/**
	 * Incrémenter une propriété sans dépasser la limite
	 * @param pObjet L'objet qui possède la propriété à modifier
	 * @param pPropriete La propriété à modifier
	 * @param pLimite La limite de l'incrémentation
	 * @param pNombre De combien il faut incrémenter
	 */
	public static function incrementLimit(pObjet:Object, pPropriete:String, pLimite:Number, pNombre:Number){
		var vValeurCourante:Number = pObjet[pPropriete];
		var vValeurSuivante:Number = vValeurCourante + pNombre;
 
		if(vValeurSuivante > pLimite){
			pObjet[pPropriete] = pLimite;
		}else{
			pObjet[pPropriete] = vValeurSuivante;
		}
	}
	/**
	 * Arrondir un nombre en spécifiant le nombre de décimales
	 * @param pNumber Le nombre à arrondir
	 * @param pDecimal Le nombre de chiffres après la virgule [OPTION=0]
	 * @return Le nombre arrondi
	 */
	public static function round(pNumber:Number, pDecimal:Number):Number{
		var vDecimal:Number = pDecimal || 0;
		var vMultiply:Number = Math.pow(10, vDecimal);
 
		return Math.round(vMultiply * pNumber)/vMultiply;
	}
	/*==================== FIN = METHODES PUBLIQUES = FIN ====================*/
	/*========================================================================*/
}

1) si le nombre est inférieur à 10, un 0 est ajouté à gauche