Bug dans les calculs javascript?

Signaler
Messages postés
32
Date d'inscription
vendredi 12 septembre 2003
Statut
Membre
Dernière intervention
4 avril 2007
-
Messages postés
283
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
22 juin 2006
-
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

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
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 ~
Messages postés
283
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
22 juin 2006

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