Les réels sont issus d’un codage binaire en virgule
flottante. Ce codage est appelé IEEE 754. IEEE étant L’Institute of Electrical and Electronics
Engineers qui a créé cette norme de codage.
Ce codage IEEE est utilisé par
quasiment tous les langages de programmation.
Comment fonctionne ce
codage ?
En codage binaire, chaque 1 à droite
de la virgule est une fraction de deux: 1/2, 1/4, 1/8, 1/16, etc.
L'imprécision du codage binaire
concerne les chiffres à droite de la virgule.
Par exemple 0.75 en décimal s'écrit
0.11 en binaire (1/4 + 1/2) ce qui ne pose aucun souci de codage et de
précision.
Prenons le cas de 0.8. Il s’écrit 1/2
+ 1/4 + 1/32 + 1/64 + 1/1024 + 1/2048 + 1/……..+
1/…….+…..
Il est impossible à obtenir en
additionnant des fractions de 2. Si on choisit de s'arrêter à 10 chiffres après
la virgule, 0.8 en décimal s'écrira 0.1100110011 en binaire. Or ce résultat ne
correspond pas à 0.8 exactement.
Dans le cas de WinDev, la solution est simple, il faut utiliser les
monétaires pour les calculs.