Avec une variable de type float, comment l'afficher avec 3 chiffres après le point décimal, en utilisant iostream en C++?
Celui-ci montre "13.141"
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
double f = 13.14159;
cout << fixed;
cout << setprecision(3) << f << endl;
return 0;
}
Vous pouvez obtenir un nombre fixe de chiffres fractionnaires (et beaucoup d'autres choses) en utilisant l'en-tête iomanip
. Par exemple:
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << std::fixed << std::setprecision(2) << pi << '\n';
return 0;
}
affichera:
3.14
Notez que fixed
et setprecision
changent le flux de façon permanente. Par conséquent, si vous souhaitez localiser les effets, vous pouvez enregistrer les informations à l'avance et les restaurer ultérieurement:
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << pi << '\n';
// Save flags/precision.
std::ios_base::fmtflags oldflags = std::cout.flags();
std::streamsize oldprecision = std::cout.precision();
std::cout << std::fixed << std::setprecision(2) << pi << '\n';
std::cout << pi << '\n';
// Restore flags/precision.
std::cout.flags (oldflags);
std::cout.precision (oldprecision);
std::cout << pi << '\n';
return 0;
}
Le résultat de ceci est:
3.14159
3.14
3.14
3.14159
Si vous souhaitez imprimer des nombres avec une précision de 3 chiffres après le point décimal, ajoutez ce qui suit avant d’imprimer le nombre cout << std::setprecision(3) << desired_number
. N'oubliez pas d'ajouter #include <iomanip>
dans votre code.