Bonjour,
Pour les besoins du programme que je développe, je place à un moment une soustraction dans plusieurs boucles imbriquées sur un registre à décalage.
Pour prendre un exemple simple je soustrait 0.1 à 1 jusqu'à ce que le résultat de la soustraction soit nul. Soit {0.9;0.8;0.7;0.6;0.5;0.4;0.3;0.2;0.1;0}.
Les commandes qui permettent de régler la valeur de départ et le pas de décrémentation sont des double précision et sont des valeurs exactes.
Il se trouve qu'en dernière position, au lieu d'avoir {0}, j'ai 2.77(etc)E^-17 (soit environ 0). Si je pousse un peu plus loin et que je mets mon tableau en "virgule flottante" j'obtiens par exemple {0.8993;0.8000004;0.69987;etc etc..} C'est à dire presque le résultat souhaité en terme de valeur, mais totalement incompréhensible (en tout cas pour moi). Comme ces valeurs vont êtres envoyées dans un instrument très précis, il est embêtant que je n'obtienne pas les valeurs rondes que je demande dans ce petit exemple tout bête.
J'ai eu beau essayé de modifier la source (sgl, dbl,flt,...) rien n'y fait.
Help.. ?
Merci d'avance.
Quentin.
Partager