J'essaie d'imprimer la moyenne en Cpp jusqu'à 2 points décimaux de float
num. avg
est float
, sum
est float
, count
est int
.Arrondi à la deuxième décimale sauf si le nombre est entier C++
Actuellement, si j'ai 10/1 par exemple, il sort 10.00. Je veux que la sortie soit juste 10. si avg
obtient la valeur 3.1467665
par exemple, elle devrait être montrée comme 3.14
.
avg = sum/count;
std::cout << std::fixed << std::setprecision(2) << avg;
L'arrondi devrait être juste pour la sortie. Pas besoin de changer avg
mais si c'est plus facile, sa valeur peut être changée.
Recherche d'une solution utilisant un standard avant C++ 11.
UPD: la sortie est 27,50 quand je veux que ce soit 27,5.
La mise à jour * de manière significative * change la question. Il ne s'agit plus de * "arrondir" *, mais plutôt de "troncature" *. Certes, cela compte toujours comme arrondi (soit vers zéro, soit vers l'infini négatif), mais ce n'est pas ce à quoi les gens s'attendent généralement quand ils voient le terme * «arrondi» * isolément. Correction: Ce n'était pas la mise à jour qui a changé la question. L'exigence de troncature existait dès le début. La réponse proposée ne répond pas à cela. Il produirait '3.15' lorsqu'il est exécuté contre' 3.1467665'. – IInspectable