En détail
Défini par IEEE 754, un float de 32 bits a 1 bit de signe, 8 d'exposant et 23 de fraction (environ 7 chiffres décimaux) ; un double de 64 bits en a 1, 11 et 52 (environ 16 chiffres). La valeur vaut à peu près signe × 1.fraction × 2^exposant, si bien que les écarts entre nombres représentables croissent avec la taille du nombre. Les valeurs spéciales comprennent le zéro signé, les infinis et NaN (not a number).
Pourquoi c'est important
La plupart des fractions décimales, comme 0,1, n'ont pas de forme binaire exacte ; les résultats portent donc de minuscules erreurs d'arrondi et les comparaisons avec == peuvent échouer. On compare avec une tolérance et l'on utilise des entiers ou des types décimaux pour l'argent. Inspectez les bits exacts et la valeur de n'importe quel nombre avec le convertisseur de flottants IEEE 754.
Exemple
En double précision, 0.1 + 0.2 vaut 0.30000000000000004 et non 0.3, car ni 0,1 ni 0,2 ne sont stockés exactement. La valeur stockée de 0,1 est 0.1000000000000000055511151231257827….