Laden...

Mit Math.Round in 0.5er und 0.25er Schritten runden

Erstellt von TLoD vor 11 Jahren Letzter Beitrag vor 11 Jahren 5.459 Views
Thema geschlossen
TLoD Themenstarter:in
6 Beiträge seit 2012
vor 11 Jahren
Mit Math.Round in 0.5er und 0.25er Schritten runden

Hallo Gemeinde,

wie das Topic schon sagt, spiele ich mit der Math.Round herum, habe da aber so meine Problemchen...

Eigentlich rechne ich nur Werte in einer for-Schleife aus und möchte diese dann als ganze, halbe, viertel und zehntel ausgeben. Mein Problem liegt nun darin, wie ich die Math.Round dazu bringe, mir viertel und halbe Werte auszugeben bzw. in 0.5er und 0.25er Schritten zu Runden.

Meine Lösung für ganze Ergebnisse: (1,00 - 2,00 - 3,00...)

double ERGganze = Math.Round(((ergebnis * 100 - 0.5) / 100), 0);

Meine Lösung für zehntel Ergebnisse: (1,10 - 1,20 - 1,30...)

double ERGzehntl = Math.Round(((ergebnis * 10) / 10), 1);

Gibt es hier eine Übersicht bzw. eine Richtlinie, an die man sich halten muss/kann?
Ich habe schon einige Zeit mit Google zugebracht, jedoch ohne Erfolg.

Schon mal vielen Dank für Eure Hilfe!

MfG
T

3.430 Beiträge seit 2007
vor 11 Jahren

Hallo TLoD,

du hast dir die Lösung eigentlich doch schon selbst gegeben.
Du musst den Wert einfach vorher multiplizieren und anschließend wieder dividieren.

Wobei dein Beispiel-Code mit den Zehnteln so aussieht als hättest du eine klammer falsch gesetzt.
Probier es mal so


double viertel = Math.Round(ergebnis * 4, 1) / 4;
double halbe = Math.Round(ergebnis * 2, 1) / 2;

Grüße
Michael

Thema geschlossen