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-Key: 48071

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

Printed on: April 20, 2024 at 04:04 o'clock

Member: DaSam
DaSam Jan 05, 2007 at 17:55:06 (UTC)
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
Member: Kosh
Kosh Jan 05, 2007 at 17:59:08 (UTC)
Goto Top
oha ; )

und wie krieg den decimal immer aufgerundet?
Member: Kosh
Kosh Jan 05, 2007 at 18:08:53 (UTC)
Goto Top
Lösung gefunden:

Math.Ceiling(decimal);

Das isses.

Danke für deine Hilfe DaSam.

Grüsse

Kosh