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:
Je saisie dans DataInput.text le string "0.3* et j'obtiens dans FinalValue.Text le string *0.30000001"!!!
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);
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?
Partager