J'ai une liste de float
valeurs et je veux les imprimer cout
avec 2 décimales.
Par exemple:
10.900 should be printed as 10.90
1.000 should be printed as 1.00
122.345 should be printed as 122.34
Comment puis-je faire ceci?
( setprecision
ne semble pas aider à cela.)
#define FIXED_FLOAT(x) std::fixed <<std::setprecision(2)<<(x)
qui simplifie l'utilisation à:cout<<FIXED_FLOAT(d)
Vous y étiez presque, vous devez également utiliser std :: fixed, reportez-vous à http://www.cplusplus.com/reference/iostream/manipulators/fixed/
les sorties:
la source
setprecision(n)
s'applique au nombre entier, pas à la partie fractionnaire. Vous devez utiliser le format à virgule fixe pour l'appliquer à la partie fractionnaire:setiosflags(ios::fixed)
la source
Simplifiez la réponse acceptée
Exemple simplifié:
Et vous obtiendrez une sortie
Référence:
std::fixed
std::setprecision
la source
J'ai eu un problème pour les entiers tout en voulant un formatage cohérent.
Une réécriture pour l'exhaustivité:
la source
J'ai eu ce problème similaire dans un concours de codage et c'est ainsi que je l'ai géré. Définition d'une précision de 2 pour toutes les valeurs doubles
Ajoutez d'abord l'en-tête pour utiliser setprecision
#include <iomanip>
Puis en ajoutant le code suivant dans notre main
Production:
Vous devez utiliser fixe pour écrire 5,00, c'est pourquoi votre sortie ne sera pas disponible pour 5,00.
Un court lien vidéo de référence que j'ajoute, ce qui est utile
la source
Vous devez définir le «mode flottant» sur fixe.
la source
Pour définir 2 chiffres fixes après la virgule décimale, utilisez-les d'abord:
Puis imprimez vos valeurs doubles.
Ceci est un exemple:
la source
la source
avec des modèles
similaire pour les scientifiques également, avec une option de largeur également (utile pour les colonnes)
la source
Juste un point mineur; mettre ce qui suit dans l'en-tête
en utilisant l'espace de noms std;
puis
std :: cout << std :: fixed << std :: setprecision (2) << d;
se simplifie en
cout << fixe << setprecision (2) << d;
la source
using namespace std;
pour le plaisir - comprenez pourquoi vous le faites.ceci un exemple utilisant une matrice.
la source