Je veux imprimer des nombres dans un fichier en utilisant la stl avec le nombre de décimales, plutôt que la précision globale.Comment puis-je changer la précision de l'impression avec le fichier stl?
Donc, si je fais ceci:
int precision = 16;
std::vector<double> thePoint(3);
thePoint[0] = 86.3671436;
thePoint[1] = -334.8866574;
thePoint[2] = 24.2814;
ofstream file1(tempFileName, ios::trunc);
file1 << std::setprecision(precision)
<< thePoint[0] << "\\"
<< thePoint[1] << "\\"
<< thePoint[2] << "\\";
Je vais obtenir des chiffres comme ceci:
86.36714359999999\-334.8866574\24.28140258789063
Ce que je veux est ceci:
86.37\-334.89\24.28
En d'autres termes, tronquer à deux décimales. Si je définis la précision à 4, alors je vais obtenir
86.37\-334.9\24.28
par exemple, le deuxième nombre est incorrectement tronqué. Je ne veux pas avoir à manipuler chaque nombre explicitement pour obtenir la troncature, d'autant plus que j'ai l'impression de recevoir de temps en temps des répétitions ou 0000000001 ou quelque chose comme ça.
Je suis sûr qu'il y a quelque chose d'évident, comme l'utilisation du printf (% 2f) ou quelque chose comme ça, mais je ne sais pas comment mélanger cela avec la stl < < et ofstream.
Voilà, merci! – mmr