495 Stimmen

Wie runden Sie eine Zahl auf zwei Dezimalstellen in C#?

Ich möchte dies mit Hilfe des Math.Round Funktion

813voto

Eoin Campbell Punkte 42038

Hier sind einige Beispiele:

decimal a = 1.994444M;

Math.Round(a, 2); //returns 1.99

decimal b = 1.995555M;

Math.Round(b, 2); //returns 2.00

Vielleicht möchten Sie sich auch die Rundung der Banker mit der folgenden Überlast ansehen:

Math.Round(a, 2, MidpointRounding.ToEven);

Hier finden Sie weitere Informationen dazu aquí .

125voto

John Boker Punkte 80493

Versuchen Sie dies:

twoDec = Math.Round(val, 2)

48voto

Colonel Panic Punkte 125419

Wenn Sie einen String möchten

> (1.7289).ToString("#.##")
"1.73"

Oder eine Dezimalzahl

> Math.Round((Decimal)x, 2)
1.73m

Aber denken Sie daran! Die Rundung ist nicht distributiv, d.h. round(x*y) != round(x) * round(y) . Runden Sie also nicht bis zum Ende einer Berechnung, da Sie sonst an Genauigkeit verlieren.

36voto

Gleno Punkte 15951

Ich persönlich runde nie etwas auf. Halten Sie es so resolut wie möglich, da das Runden in der CS sowieso ein bisschen ein Ablenkungsmanöver ist. Aber Sie wollen Daten für Ihre Benutzer formatieren, und zu diesem Zweck finde ich, dass string.Format("{0:0.00}", number) ist ein guter Ansatz.

16voto

Foredecker Punkte 7337

Wikipedia hat eine schöne Seite zur Rundung im Allgemeinen.

Alle (verwalteten) .NET-Sprachen können einen der Rundungsmechanismen der Common Language Run Time (CLR) verwenden. Zum Beispiel kann die Math.Round() (wie oben erwähnt) ermöglicht es dem Entwickler, die Art der Rundung festzulegen (Rundung auf gerade oder weg von Null). Die Methode Convert.ToInt32() und ihre Variationen verwenden Rund-um-die-Uhr . Die Obergrenze() y Floor() Methoden verwandt sind.

Sie können aufrunden mit benutzerdefinierte numerische Formatierung auch.

Beachten Sie, dass Dezimal.Runden() verwendet eine andere Methode als Math.Round();

Hier ist ein nützliche Funktion t über den Rundungsalgorithmus der Bank. Siehe einen von Raymonds humorvollen Beiträge hier über Rundungen...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X