Bonjour à tous,

J'ai une app Android qui demande à l'utilisateur de saisir un nombre réel mais au final j'obtiens un nombre réel avec des décimales erronées. Pour une saisie "0.3", je me retrouve avec une valeur *0.30000001"!!!

Je bricole le bout de code suivant pour visualiser ce qui se passe:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
var
 mysingle: single;
...
mysingle:=StrToFloat(StringReplace(String(DataInput.Text),'.',FormatSettings.DecimalSeparator,[])); 
 
FinalValue.Text:=FloatToStrF(mysingle, ffGeneral, 8, 3,G_myDecimalSeparator);
Je saisie dans DataInput.text le string "0.3* et j'obtiens dans FinalValue.Text le string *0.30000001"!!!

Questions:

1. Comment éviter ce problème de précision?

2. Avec la mention "FloatToStrF(...8,3...", je devrais bien avoir 3 digits après la virgule, non?