Ich versuche, den Durchschnitt in Cpp bis zu 2 Dezimalpunkte der float
Nummer zu drucken. avg
ist float
, sum
ist float
, count
ist int
.Runden auf die zweite Dezimalstelle, es sei denn, die Zahl ist ganz C++
Derzeit, wenn ich 10/1 zum Beispiel habe, gibt es 10.00 aus. Ich möchte, dass der Ausgang nur 10 ist. Wenn avg
den Wert 3.1467665
erhält, sollte es beispielsweise als 3.14
angezeigt werden.
avg = sum/count;
std::cout << std::fixed << std::setprecision(2) << avg;
Die Rundung sollte nur für die Ausgabe sein. Keine Notwendigkeit zu ändern avg
, aber wenn es einfacher ist, kann der Wert geändert werden.
Auf der Suche nach einer Lösung mit einem Standard vor C++ 11.
UPD: der Ausgang ist 27.50, wenn ich möchte, dass es 27.5 ist.
Das Update * deutlich * ändert die Frage. Es fragt nicht mehr nach * "Runden" *, sondern nach * "Abschneiden" *. Zugegeben, das gilt immer noch als Rundung (entweder in Richtung Null oder Neg. Unendlichkeit), aber es ist nicht das, was die Leute allgemein erwarten, wenn sie isoliert den Begriff * "runden" sehen. Korrektur: Es war nicht das Update, das die Frage änderte. Die Kürzungsanforderung war von Anfang an da. Die vorgeschlagene Antwort spricht das nicht an. Es würde '3.15' produzieren, wenn es gegen' 3.1467665' läuft. – IInspectable