Bonjour
Je viens de me prendre la tête sérieusement avec un problème de nombre décimal et les inventions de chiffres derrière la virgule par Delphi.
Je dois ré-écrire des calculs Delphi en PL/SQL (Oracle). Je fais une procédure stockée permettant de comparer les résultats obtenus par les 2 méthodes (résultats stockés dans 2 tables Oracle différentes).
Et j'ai des petites différences... Je débuggue, analyse les valeurs et là, je tombe sur 1.39999997. Hein ???
On a une fonction Delphi qui renvoie un single, qui fait tout un tas de calcul et qui renvoie 1.3, 1.4, 1.5... dans ce style-là, directement, sans calcul. Et dans une autre fonction on stocke dans un single le résultat de cette 1ère fonction : 1.3999... RoundTo : pareil ! Autres trucs équivalent : même valeur ! Je multiplie par 10, je passe par un entier. Pas mieux ! Je prend un 2ème single dans lequel je met entier/10 et encore la valeur bidon
Je cherche sur le forum, je trouve des problèmes +/- semblables à la pelle mais je trouve la solution tout seul : j'ai mis un double pour ma variable qui reçoit le résultat de ma fonction en single et ça fonctionne.
Partager