Salut à tous,
j'ai un probleme avec les float en javascript...
Mon problème est le suivant :
j'ai un nombre qui peut être décimal et je veux vérifier que la somme de plusieurs autres nombres est égale au premier nombre.
Le problème est que si je saisie 100.53 dans mon premier nombre et 50.11 et 50.12 dans les cases suivantes, la comparaison de ces nombre me renvoie false. En effet, avec les float, j'ai un problème d'arrondis qui fait que 50.11 + 50.12 = 100.529999999999999.
J'ai pas mal cherché sur internet, mais je n'ai trouvé aucune solution. Bcp de gens parle de ce problème comme quelque chose de nomal, mais personne ne propose de solution.
J'avais le même problème en JAVA, et je l'ai résolu en utilisant un BigDecimal.
Si vous avez une solution, n'hésitez pas.
Merci d'avance.
Voici le bout de mon code :
var montantTotal = 0;
for( var i = 1; i < nbCase; i++) {
montantTotal = parseFloat(montantTotal) + parseFloat(document.forms[0].elements[i].value);
}
if(parseFloat(document.forms[0].elements[2].value) != montantTotal) {
alert('La somme est différente du résultat.');
closeWindow = false;
}
Message édité par pote le 04-01-2007 à 15:13:59