2017-09-10 5 views
-4

Hallo Leute, meine Artikelpreise im System werden vom System generiert und ich möchte es abrunden.Dezimalstellen (Preis) auf 0,50 oder ganze Zahlen runden. C# winforms

So: 1,01-1,49 wird 1,50 und 1,51-1,99 werden 2,00

Beispiele: 5.56 -> 6.00 und 5.32 -> 5.50

Wie kann ich das erreichen? Vielen Dank.

+1

[? 'Math.Round'] (https: // msdn.microsoft.com/en-us/library/system.math.round(v=vs.110).aspx) –

+1

@DanielPark Nein, nicht 'Math.Round', denn das ist zum Runden, das" aufrunden "in Diese Frage ist nicht. – hvd

+0

@hvd Ja, das ist meine Frage. Ich frage mich, ob meine Leute meine Frage ablehnen? – StudentDev

Antwort

3

Die Aufrundung erfolgt mit der Methode Math.Ceiling.

Die Methode direkt anwenden würde auf den nächsten Dollar runden. Der Trick auf den nächsten 50 Cent zu runden ist, den Preis zu verdoppeln, um seine Decke, und wiederkehrende Hälfte des Ergebnisses:

decimal roundedToFiftyCents = Math.Ceiling(2 * originalPrice)/2; 

Demo.

Verwandte Themen