Limiter le nombre de decimales

Contenu du snippet

Ceci est plus une astuce utile qu'un code...
En effet, parfois a l'affichage on se retrouve avec des chiffres ayants des 10aines de decimales: 1.15488785445745878
Ce n'est pas tres propre, et dans ce cas, on est tenté de faire un Math.round() mais parfois, une version arrondi ne convient pas.
Il faut alors limiter le nombre de decimales.

Flash ne possede pas de fonctions pour ça, alors il faut en creer une. Rien de complexe.
Il suffit de reperer le '.' puis de reduire le nombre de chiffres des decimales via une conversion en String, puis un simple substr().
on reassemble ensuite le chiffre que l'on converti en Number dans la foulée, et voila!

Source / Exemple :


function limitDecimal(num:Number, limit:Number):Number {
	var pointIndex:Number = num.toString().indexOf(".", 0);
	if (pointIndex == -1) {
		return num;
	} else {
		var number:String = num.toString().substring(0, pointIndex);
		var decimals:String = num.toString().substring(pointIndex+1, num.toString().length);
		var newDecimals:String = decimals.substr(0, limit);
		return Number(number+"."+newDecimals);
	}
}

et puisque top30 insiste, voici une solution plus simple et plus courte (mais lui au moins il dors la nuit!):
function FloatLength ( val :Number, length :Number) :Number {
  var tmp:Array = String(val).split ('.') ;
  if ( tmp[1] ) tmp[1] = tmp[1].substring (0, length) ;trace (length);
    return Number (tmp.join('.')) ;
  }
}

alors on dit merci top30! bonne nuit BlackWizzard!

Conclusion :


Rien de spectaculaire, juste une astuce...

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.