ARRONDIR 2 chiffres après la virgule (AS2) [Résolu]

Messages postés
6
Date d'inscription
mercredi 28 septembre 2005
Dernière intervention
27 octobre 2011
- - Dernière réponse : aerolyte
Messages postés
468
Date d'inscription
mardi 17 avril 2007
Dernière intervention
4 mai 2013
- 27 oct. 2011 à 13:22
Bonjour,

J'ai essayé plein d'astuce je n'arrive pas à arrondir mes décimales.

J'explique :

j'ai un quizz avec différents chapitres :

Ma variable "scoretd1" me compte les points du chapitre 1
Ma variable "scoretd2" me compte les points du chapitre 2
Ma variable "scoretd2" me compte les points du chapitre 3

Puis dans mon dernier frame, j'ai le total de mes résultats :

Chapitre 1 vous avez : "result1pourc" % de réponses justes

"result1pourc" est une variable en texte dynamique dans un clip sprite44 resultat1
Dans ce sprite voici le code mis pour le calcul :

onClipEvent (enterFrame){
if (scorech1 == NaN)
{
(result1pourc == 0)
}
else
(result1pourc = (_level0.scorech1.scorech1*100)/7)


}

Cela fonctionne très bien mais il me donne un nombre avec 7 chiffres voir plus après la virgule et moi je n'en désire que 2.

Bien entendu j'ai essayé math.round sans succès et plein d'autres mais rien de fonctionne, car tout ce qu'il y a sur le net, il faut indiquer le nombre, alors que moi le nombre je ne le connais pas c'est une variable.

Merci pour votre aide.
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Dernière intervention
4 septembre 2013
3
Merci
Tu peux surtout éviter de dire "variable = variable" et mettre directement ta variable principale dans l'équation.

Peg'

Merci pegase31 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de pegase31
Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Dernière intervention
4 septembre 2013
0
Merci
bonjour,

Il faut jouer avec la virgule du chiffre :

var nb:Number = 12.7891234567812; //nombre à arrondir
var arr:int = 3; //nombre de chiffre voulu après la virgule
trace (Math.floor(nb*(Math.pow(10,arr)))/Math.pow(10,arr)); //renvoie 12.789


Si tu désires que le dernier chiffre soit arrondis à la dizaine supérieure si besoin (12.79 au lieu de 12.78) utilises Math.round au lieu de Math.floor.
Et si tu désires que le dernier chiffre soit toujours à la dizaine supérieure, utilise Math.ceil.

Je pense que tu es blindé avec ça.

Peg'
Commenter la réponse de pegase31
Messages postés
468
Date d'inscription
mardi 17 avril 2007
Dernière intervention
4 mai 2013
0
Merci
Bonjour,

je pense que ton probleme est tout autre,..., tu ne sais pas chercher sur internet

j'ai fait le test et la premier réponse trouvée sur google est la bonne.

Du coup comme tu sembles peu doué je te donne la réponse, sinon tu rique d'y passer la semaine.

var nombre:Number=50.78695412
resultat=(Math.round(nombre*100))/100;
trace(resultat);

Cordialement
Commenter la réponse de aerolyte
Messages postés
6
Date d'inscription
mercredi 28 septembre 2005
Dernière intervention
27 octobre 2011
0
Merci
Re,

Attention je ne connais pas le nombre, car c'est un quizz, donc sur 20 questions je fais une moyenne, mais celle ci est toujours différentes.

Alors est ce que je pourrais faire ceci :

var nombre:Number=result1pourc
resultat=(Math.round(nombre*100))/100;
trace(resultat)
Commenter la réponse de davidlemp
Messages postés
6
Date d'inscription
mercredi 28 septembre 2005
Dernière intervention
27 octobre 2011
0
Merci
Ça marche !!!!!

En fait c'était tous simple, j'oubliais à chaque fois de modifier nombre par ma variable

onClipEvent (enterFrame){
if (scorech1 == NaN)
{
(result1pourc == 0)
}
else
result1pourc=((_level0.scorech1.scorech1*100)/7)
result1pourc=(Math.round(result1pourc*100))/100;

}

Merci à vous deux. grâce à vous mon Elearning comptabilité est terminé.

A+
Commenter la réponse de davidlemp
Messages postés
468
Date d'inscription
mardi 17 avril 2007
Dernière intervention
4 mai 2013
0
Merci
je crois que tu as pas compris ce que te dit pegase

onClipEvent (enterFrame){ 
result1pourc=(scorech1==NaN)?0:(Math.round(((_level0.scorech1.scorech1*100)/7)*100))/100; 
} 


Pourquoi faire compliqué quand ca peut etre simple?
Commenter la réponse de aerolyte

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.