Bonjour,
Je souhaite convertir un ensemble de string en valeurs numériques de type double float ou int.
Je me suis basé sur :
http://cpp.developpez.com/faq/cpp/?p...NGS_convert_to
par contre, au niveau des résultats, j'obtiens quelque chose d'étrange.
J'ai écris une méthode String2Float qui ne fait que :
Lorsque je teste ma fonction avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 float String2Float(const string& s) { return from_string<float>(s); }
j'obtiens alors :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 cout << "Converting string \"1234.56789\" into float" << endl; float decimalValue = String2Float("1234.56789"); cout << "Received value is " << decimalValue << endl << endl;
Converting string "1234.56789" into float
Received value is 1234.5678710938
Si j'utilise atof, j'obtiens bien :
Received value is 1234.56789
J'ai pensé à un problème d'approximation à cause de cout mais dans le débugger, j'ai bien decimalValue = 1234.5678710938
Avec les double, aucun problème.
D'où peut venir ce problème d'approximation avec les float ?
D'avance merci.
P.
Partager