Comment utiliser la setprecision en C++
-
Utiliser la méthode
setprecision()
pour définir une précision personnalisée pour les flotteur -
Utilisez
setprecision()
etstd::fixed()
pour définir une précision personnalisée pour les float -
Utilisez
setprecision()
etstd::fixed()
pour aligner les nombres float sur une virgule décimale
Cet article présentera plusieurs méthodes sur la façon d’utiliser la méthode de setprecision
en C++.
Utiliser la méthode setprecision()
pour définir une précision personnalisée pour les flotteur
setprecision()
fait partie de la bibliothèque de manipulateurs d’entrées/sorties <iomanip>
et peut être utilisée pour modifier la précision par défaut des nombres à virgule float. setprecision()
est généralement utilisé dans les expressions avec des flux d’entrées/sorties.
L’exemple suivant montre comment définir la précision des nombres float pour l’objet flux de sortie cout
. Notez que, setprecision()
s’applique au nombre entier (partie entière et partie fractionnaire) et utilise la notation scientifique lorsque les nombres ont une magnitude supérieure à la précision spécifiée.
#include <iomanip>
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::fixed;
using std::setprecision;
using std::vector;
int main() {
vector<double> d_vec = {123.231, 2.2343, 0.324, 0.012,
26.9491092019, 11013, 92.001112, 0.000000234};
for (auto &i : d_vec) {
cout << setprecision(3) << i << " | ";
}
cout << endl;
return EXIT_SUCCESS;
}
Production:
123 | 2.23 | 0.324 | 0.012 | 26.9 | 1.1e+04 | 92 | 2.34e-07 |
Utilisez setprecision()
et std::fixed()
pour définir une précision personnalisée pour les float
On peut aussi utiliser les manipulateurs de flux setprecision()
et fixed()
en conjonction pour imprimer des valeurs en virgule float avec le même nombre de chiffres après la virgule. La méthode fixed()
fixe la partie fractionnaire du nombre à une longueur fixe, qui par défaut est de 6 chiffres. Dans l’exemple de code suivant, nous sortons vers le flux cout
et appelons les deux manipulateurs avant que le nombre ne soit inséré dans la sortie.
#include <iomanip>
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::fixed;
using std::setprecision;
using std::vector;
int main() {
vector<double> d_vec = {123.231, 2.2343, 0.324, 0.012,
26.9491092019, 11013, 92.001112, 0.000000234};
for (auto &i : d_vec) {
cout << fixed << setprecision(3) << i << " | ";
}
cout << endl;
return EXIT_SUCCESS;
}
Production:
123.231 | 2.234 | 0.324 | 0.012 | 26.949 | 11013.000 | 92.001 | 0.000 |
Utilisez setprecision()
et std::fixed()
pour aligner les nombres float sur une virgule décimale
Enfin, nous pouvons combiner les manipulateurs setw
, right
, setfill
, fixed
et setprecision
pour produire des nombres à virgule float alignés à la virgule. La méthode setw
spécifie la largeur du flux de sortie avec le nombre de caractères passés en argument. La méthode setfill
définit un caractère par lequel l’espace non utilisé sera rempli et la méthode right
indique cout
le côté auquel l’opération de remplissage s’applique.
#include <iomanip>
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::fixed;
using std::setprecision;
using std::vector;
int main() {
vector<double> d_vec = {123.231, 2.2343, 0.324, 0.012,
26.9491092019, 11013, 92.001112, 0.000000234};
for (auto &i : d_vec) {
cout << std::setw(10) << std::right << std::setfill(' ') << fixed
<< setprecision(4) << i << endl;
}
cout << endl;
return EXIT_SUCCESS;
}
Production:
123.2310
2.2343
0.3240
0.0120
26.9491
11013.0000
92.0011
0.0000
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookArticle connexe - C++ Float
- Arrondir le nombre à virgule flottante à 2 décimales en C++
- Définir la précision des nombres à virgule flottante en C++
- Comment convertir Float en Int en C++
- Comment générer un nombre aléatoire entre 0 et 1 en C++
- Comment convertir un float en chaîne de caractères en C++
- Comment générer un nombre float aléatoire en C++