Les types à virgule flottante fonctionnent différemment des types entiers.
Les types entiers font directement correspondre les valeurs de leur plage min-max à toutes les permutations binaires de tous les 0 à tous les 1. Ils peuvent donc représenter directement une valeur, si elle est dans l'intervalle.
Les types à virgule flottante sont essentiellement 2 nombres : fraction ( mantisse ) et l'exposant.
Ainsi, le nombre 1 000 000 pourrait être représenté par la fraction 1 et l'exposant 6 (10^6).
Un nombre à virgule flottante peut donc représenter une gamme massive de nombres (la gamme est limitée par la gamme des exposants) avec une précision variable (la précision est limitée par la gamme des fractions). Au fur et à mesure que les nombres deviennent plus grands, en raison du nombre limité de chiffres de la fraction, les petits nombres seront de moins en moins précis. Par exemple, si vous atteignez 10 000, l'ajout de 0,0001 donnera le nombre le plus proche de 10 000,0001 qui peut être représenté, comme 10 000,025786 ou quelque chose comme ça.
Conformément à IEE765 Un double a 11 bits d'exposant et 52 bits de fraction.
Ainsi, lorsque vous associez un nombre de 52 bits à un exposant de 11 bits, vous obtenez un nombre assez important. Mais cela ne signifie pas que tous les nombres de cette plage, du plus petit au plus grand, peuvent être représentés avec précision, contrairement à un type entier.