0
J'ai une variable CString que je dois convertir en deuxC++ atof/_wtof, erreur d'arrondi
CString sVal(_T(" 4.2"));
double dbl2 = _wtof(sVal);
et je me suis dbl2 = 4,0000 au lieu de 4,2. Quelle pourrait être la raison de l'arrondissement?
Pouvez-vous montrer un programme principal complet, y compris cet échantillon s'il vous plaît (et vérifier qu'il montre d'abord le problème). Idéalement, vous devriez le convertir pour utiliser standard 'std :: wstring', mais sinon, je changerais les balises pour inclure quelque chose de spécifique à MS. –
Êtes-vous en Europe continentale? (En d'autres termes, votre machine est-elle configurée avec un séparateur décimal de ','?) Il se peut qu'elle effectue une transformation spécifique aux paramètres régionaux. –
Russie, setlocale (LC_ALL, ".1251"); Vous avez raison, en remplaçant "." à "," éliminé le problème –