Bug dans les calculs javascript?

fr64 Messages postés 32 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 4 avril 2007 - 24 nov. 2005 à 09:31
the_smurf Messages postés 283 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 22 juin 2006 - 24 nov. 2005 à 10:45
Bonjour,
J'essaie de faire le calcul suivant en javascript (par exemple dans la console javascript de Firefox):
1*8.86+2*15.31
Le résultat est surprenant : 39.48000000000004
Cela arrive pour plein d'autres cas (63.6*3+65.4*2+70.8*2=463.20000000000005 par exemple)
Quelqu'un a t'il déjà constaté ce comportement?
Merci de vos pistes.

2 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
24 nov. 2005 à 09:59
Bonjour,
il n'y a pas qu'avec JavaScript, c'est le cas avec de nombreux langages.
arrindir/tronquer... les résultats
Cordialement. Bul. ~ Site ~
0
the_smurf Messages postés 283 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 22 juin 2006
24 nov. 2005 à 10:45
Ex:

Ton 15.31 en binaire à virgule fixe s'ecrirait: 1111,0100 ou
1111,01001111 ou 1111,010011110101 ou 1111,0100111101011100 etc selon
la précision, que je ne connais pas, utilisée par le js...

Quand on fait la conversion inverse on se rend imédiatement compte de l'erreur d'approximation:

1111,0100 = 15.25

1111,01001111 = 15,30859375

1111,010011110101 = 15,309814453125

1111,0100111101011100 = 15.30999755859375






The SMURF
[mailto:the_little_smurf@yahoo.fr the_little_smurf@yahoo.fr]
Enjoy the life, don't waste your time in front of your computer
0
Rejoignez-nous