kosh
Goto Top

C-Sharp Math.Round rundet immer ab

Ahoi Leute.

Ich sitz hier gerade bei einer absoluten Kuriosität.

Man stelle sich folgenden Code vor:


int TaktRest = 30;
int Einheiten = 0;
decimal Sekunden = 246M;
decimal decEinheiten;

decEinheiten = Decimal.Divide(Sekunden, TaktRest); Da kommt dann richtig "8.2" raus
decEinheiten = Math.Round(decEinheiten, 0,MidpointRounding.AwayFromZero);
Danach isses "8" ????
Einheiten = (int)decEinheiten;

Also "Midpoint.Rounding.AwayFromZero" sollte eigentlich immer auf die nächst höhere Ganzzahl aufrunden.
Also müsste 9 rauskommen.
Tuts aber nicht.

Hab ich hier irgendwo nen Denkfehler?

Content-ID: 48071

Url: https://administrator.de/contentid/48071

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

DaSam
DaSam 05.01.2007 um 18:55:06 Uhr
Goto Top
Hi,

das passt schon. Mittels "MidpointRounding.AwayFromZero" rundest du immer ab 0.5 auf, unterhalb von 0.5 ab.

Schau mal hier: http://msdn2.microsoft.com/en-us/library/system.midpointrounding.aspx

cu,
Alex
Kosh
Kosh 05.01.2007 um 18:59:08 Uhr
Goto Top
oha ; )

und wie krieg den decimal immer aufgerundet?
Kosh
Kosh 05.01.2007 um 19:08:53 Uhr
Goto Top
Lösung gefunden:

Math.Ceiling(decimal);

Das isses.

Danke für deine Hilfe DaSam.

Grüsse

Kosh