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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
float String2Float(const string& s)
{
    return from_string<float>(s);
}
Lorsque je teste ma fonction avec :
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;
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.