Urgent:javascript multiplication de deux float

cs_abari Messages postés 89 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 20 février 2006 - 23 nov. 2004 à 17:00
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 23 nov. 2004 à 18:27
slt tt le monde,
...........
var prixUnitaire,quantite;
prixUnitaire=document.form1.prixUnitaire.value;
quantite=document.form1.quantite.value;
alert("prixUnitaire="+prixUnitaire);-->10.2
alert("quantite="+quantite);-->11

prixTotal=parseFloat(quantite)*parseFloat(prixUnitaire);
alert("prixTotal="+prixTotal);-->112.19999999999999

normalement le prixTotal afficher ca doit etre egale a =112.2 et non pas 112.19999999999999 y-a-t-il un prbleme avec parseFloat() dans le cas de multiplication ????

si qlq un a une solution merci de m'aider

merci infiniment

3 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
23 nov. 2004 à 17:35
pour les questions javascript c'est ici : javascriptfr.com

une question quand meme dans tes champs tu as 10.2 et 11 ou alors 10.199999 et 11 ?
mais je ne vois quand meme pas d'ou vient le problème

Cyril
0
cs_abari Messages postés 89 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 20 février 2006
23 nov. 2004 à 18:17
merci

tu sais j'ai mis les deux valeurs en dur dans mon code :

var prixUnitaire,quantite;
/*prixUnitaire=document.form1.prixUnitaire.value;
quantite=document.form1.quantite.value;*/

prixUnitaire="10.2";
quantite="11";

alert("prixUnitaire="+prixUnitaire);-->10.2
alert("quantite="+quantite);-->11

prixTotal=parseFloat(quantite)*parseFloat(prixUnitaire);
alert("prixTotal="+prixTotal);-->112.19999999999999

ca donne tjrs le meme probléme?!!!!!
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
23 nov. 2004 à 18:27
effectivement c'est bizarre, va voir sur javascriptfr.com

une solution consisterais de supprimer les nombres à virgules en multipliant par 10^(nb de chiffre apres la virgule) puis de rediviser la multiplication par le produit des puissances de 10 utilisé, mais c'est un peu lourd quand meme :D il doit y avoir une autre solution

@+

Cyril
0
Rejoignez-nous