float arrondi depuis un fichier
Bonjour,
J'ai un petit problème avec la récupération de floats depuis un fichier texte.
Pour les récupérer, je fais ça :
Code:
1 2 3 4 5 6 7
|
string maligne;
float f1,f2,f3;
ifstream fichier("toto.truc");
getline(fichier, maligne);
istringstream iss(maligne);
iss >> f1 >> f2 >> f3; |
Donc, pour vérifier que tout ça fonctionne, je réecris mes floats. Quand je ne définissait pas le nombre de décimales, il me tronquait en général à 4 chiffres après la virgule (au niveau de l'affichage). J'ai 6 chiffres après la virgule à chaque fois, donc j'ai mis un
Code:
1 2
|
cout << setprecision(6) << fixed; |
avant la sortie. Mais là, je me retrouve avec des flottants à 6 chiffres après la virgule arrondis...
Un petit exemple : dans mon fichier d'entrée, j'ai 4.700000, et quand je lis le float correspondant, j'ai 4.700001...
Quand j'affiche plus de 6 chiffres après la virgule, j'ai d'autres chiffres qui apparaissent (à la place des 0 que je m'attendais à trouver).
J'ai essayé de vider le flux après chaque affichage, mais ça fait pareil, donc le problème ne viendrait pas de là.
D'où ça peut venir à votre avis?