Salut !
Je n'ai pas trouvé grand chose en référence à l'erreur de calcul que je viens de découvrir en javascript :
<html>
<script type="text/javascript">
alert(766*0.15);
alert(66*0.05);
</script>
</html>
Le script m'affiche successivement 114.89999999999999 et 3.3000000000000003 au lieu de 114.9 et 3.3
J'ai le même résultat avec Firefox 2 ou IE 6, et je l'ai testé sur d'autres machines.
Je sais comment fonctionnent les float, mantisse et exposant, mais ce que je ne comprends pas c'est pourquoi un tel manque de précision dans l'interpreteur JS alors que les autres langages n'ont pas ce problème ?
J'ai trouvé une page ou deux pages sur ce forum, qui me laissent sur ma faim...
Je dois pouvoir m'en sortir avec toFixed ou en multipliant par 100, mais je reste assez interloqué...
Quelqu'un a-t-il une explication ?
Partager