Dive into my collection of in-depth articles, research papers, and long-form content. Each publication represents hours of research, thought, and careful crafting.
Les nombres à virgule flottante sont calculés et stockés approximativement, parce qu'on ne peut pas stocker un nombre infini de décimales, pour nous* lorsque le nombre n'a pas une représentation finie en base 10.
On peut en fait prouver que tout nombre rationnel peut s'écrire comme une suite infinie de décimales après la virgule, mais qui cycle après un nombre fini de chiffres.
Lorsque le nombre a une représentation finie en base 10, c'est en fait un “0” qui est répété à l'infinie.
On pourrait donc être tenté de conserver les nombres sous leur forme rationnelle tout au long des calculs et ainsi, au moment d’afficher le résultat, de le calculer avec une précision arbitraire et sans erreur d'arrondi.
Mais alors on ne pourrait pas réaliser certains calculs, en particulier ceux qui donnent comme résultat des nombres dont les décimales ne constituent pas de cycle. On appelle ces nombres des irrationnels, et il y a en a beaucoup plus qu'on pourrait le penser.
*: Pour un ordinateur, le problème se pose lorsque le nombre n'a pas une représentation finie en base 2. L'exemple qui est souvent pris dans les manuels c'est 1/10 :
On est donc contraints d'effectuer des arrondis, dont les répercussions sont à prendre en compte dans tout programme au risque de voir apparaître des bugs extrêmement difficiles à débugguer.