Conversion string vers float - résultat étrange
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 :
Code:
1 2 3 4 5
|
float String2Float(const string& s)
{
return from_string<float>(s);
} |
Lorsque je teste ma fonction avec :
Code:
1 2 3 4
|
cout << "Converting string \"1234.56789\" into float" << endl;
float decimalValue = String2Float("1234.56789");
cout << "Received value is " << decimalValue << endl << endl; |
j'obtiens alors :
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.