Bonjour,
Je tente d'effectuer le calcul suivant en JavaScript : 1459 photocopies � 0.095$ chacune. Le calcul avec 'calc' de Windows donne :
En arondissant, on obtient 138.61$. C'est le montant que je recherche.
Code : S�lectionner tout - Visualiser dans une fen�tre � part 1459*0.095 = 138.605
J'effectue donc la fonction suivante :
Le r�sultat donne : 138.6. � 2 d�cimales, ca donne donc 138.60 ??? En poussant un peu plus loin, j'effectue la fonction suivante :
Code : S�lectionner tout - Visualiser dans une fen�tre � part Math.round((1459*0.095)*100)/100;
Le r�sultat donne : 13860.499999999998 ???
Code : S�lectionner tout - Visualiser dans une fen�tre � part javascript:alert(((1459*0.095)*100)); //j'ai enlevé le divisé par 100 pour voir le résultat intermédiaire
Si on effectue le divis� par 100 � cette valeur, on obtient 138.60[4], arrondi cela donne donc toujours : 138.60.
Pour le m�me calcul (1459*0.095)*100, 'calc' de Windows donne : 13860.5, ce qui est toujours exact.
�tes-vous capable d'expliquer ce comportement ? Encore mieux, pouvez-vous am�liorer la formule pour corriger ce probl�me et obtenir la bonne valeur en JavaScript ?
NOTE : Le calcul suivant donne le m�me type d'erreur. Vous pourrez tester votre nouveau code avec ce cas �galement : 371 photocopies � 0.095$ devrait donner 35.25$ et non 35.24$.
Merci !
Patric C�t�
Qu�bec / CANADA
Partager