|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : février 2006 Messages : 67 ![]() |
Bonjour,
Lorsque je tape (AS3) : trace(30/100+14/100000); J'obtient ce résultat, tout à fait illogique ! 0.30013999999999996 Bizarre, non ? o_O En AS2, j'obtient un résultat correct ; à savoir 0.30014 Comment remédier à ce problème ? Aidez moi SVp ! |
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() |
Je dirais juste qu'en AS3 c'est plus précis
Pour les arrondis, regarde du côté de Math.floor et Math.round... |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Inscription : février 2006 Messages : 2 067 ![]() |
salut à tous,
Code :
Je dirais juste qu'en AS3 c'est plus précis
ah mais non pas du tout, le résultat exact c'est 0.3014.As tu essayé : trace((30/100) + (14/100000));
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas -> ![]() Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur MERCI |
|
|
00
|
|
|
#4 | |
|
Nouveau Membre du Club
![]() |
Citation:
|
|
|
|
00
|
|
|
#5 |
|
Membre actif
![]() Inscription : avril 2007 Messages : 126 ![]() |
Il faut savoir qu'un ordinateur ne dispose que d'un nombre fini de bits pour représenter un nombre. En l'occurrence les nombres flottants en AS3 sont représentés sur 4 octets ou 32 bits. Cela signifie que les nombres sont en précision finie. Et que donc sur certains nombres, on a des erreurs d'approximation, en particulier, c'est le cas ici, un débordement inférieur.
Pour plus d'infos sur ce phénomène déroutant et parfois ennuyeux, regarde ce que tu trouves sur la norme IEEE 754 qui formalise la représentation des nombres en informatique. Par exemple ici: http://fr.wikipedia.org/wiki/IEEE_754 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com