Arithmétique des ordinateurs
Dans de nombreux langages, pourquoi la comparaison en double précision 0.1 + 0.2 == 0.3 est-elle fausse ?
- AParce que l'instruction d'addition ne calcule pas toujours correctement les sommes décimales
- BParce que 0.3 est une valeur spéciale non représentable en virgule flottante et que la comparaison est toujours fausse
- CParce que chaque valeur est représentée par une approximation arrondie et que les erreurs les rendent légèrement différentes
Afficher la réponse et l'explication
Réponse : C. Parce que chaque valeur est représentée par une approximation arrondie et que les erreurs les rendent légèrement différentes
0,1, 0,2 et 0,3 ne sont pas représentables exactement en binaire et sont chacun arrondis à la valeur la plus proche. La somme arrondie des approximations de 0,1 et 0,2 vaut 0.30000000000000004, qui diffère au dernier chiffre de l'approximation de 0,3, 0.29999999999999998…. On compare donc généralement des flottants en vérifiant si la valeur absolue de leur différence est inférieure à une petite tolérance. L'instruction d'addition arrondit correctement selon la norme, et 0,3 est représentable comme approximation.
Continuer : 9 autres questions sur Arithmétique des ordinateurs