Les flottants☘
Les flottants servent à représenter les nombres réels.
Toutefois, le nombre de chiffres utilisé en machine est nécessairement limité : une machine ne « connaît » donc pas tous les décimaux (elle n'identifie pas les décimaux ayant « trop » de chiffres).
Il existe donc une infinité de nombres non représentés en machine. Ainsi,
les nombres \sqrt{2} ou \pi sont impossibles à manipuler dans un langage
de programmation (que ce soit Python, Java, JavaScript, C, ...).
Seules des approximations de ces nombres sont connues.
Exemple
Une adresse IPv6 est codée sur 128 bits, le nombre d'adresses possibles est donc 2^{128}.
Effectuons ce calcul dans la console Python avec un entier, puis avec un flottant :
>>> 2**128
340282366920938463463374607431768211456
>>> 2.0**128
3.402823669209385e+38
Le calcul est exact si l'on calcule en utilisant l'entier 2
et il n'est
pas exact si l'on utilise le flottant 2.0
.
On constate là des différences de comportement qu'il faudra bien avoir
en tête lorsqu'on code avec des flottants plutôt qu'avec des entiers.