Feedback

C# - Kaufmännisch Runden auf 0.05 (Schweizer Norm)

Veröffentlicht von am 25.10.2012
(2 Bewertungen)
Runden auf 0.05 (Schweizer Norm).

Die Funktion ist als Erweiterungsmethode auf dem Typ Decimal implementiert. Für kaufmännische Anwendungen sollte man Fliesskomma-Typen wie Double vermeiden und immer mit Decimal arbeiten.

Die Arbeitsweise der Funktion ist folgende:
0.325 ergibt 0.35
0.324 ergibt 0.30 und funktioniert auch mit negativen Zahlen.

Beispiel:
decimal d = 0.325;
Console.Write(d.SwissCommercialRound())


Ausgabe:
0.35
GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Aufbau

Nach dieser Schulung können Sie mittels objektorientierter Modelle in VB.NET 2017/2015/2013 wiederverwendbare Elemente eigenständig erstellen.

Angular mit ASP.NET Core für .NET-Entwickler

.NET ist Ihnen vertraut, als Entwickler verfügen Sie über einschlägige Kenntnisse. In diesem Kurs lernen Sie nun, Angular in .NET-Umgebungen einzusetzen. Sie verstehen das Konzept von Angular und integrieren das clientseitige JS-Framework sicher in.NET-Anwendungen.

public static decimal SwissCommercialRound(this decimal input)
{
   return Math.Round(input * 20.0M, MidpointRounding.AwayFromZero) * 0.05M;
}

Abgelegt unter Runden, kaufmännisch Runden, Schweiz.

4 Kommentare zum Snippet

Ralf Schoch schrieb am 25.10.2012:
Vielleicht habe ich einen Denkfehler, aber meiner Meinung nach falsch.
Beim kaufmänischen Runden sollte folgendes rauskommen:
0.325 ergibt 0.33
0.324 ergibt 0.32

siehe auch
http://de.wikipedia.org/wiki/Rundung#Kaufm.C3.A4nnisches_Runden

Da Du auf 0.05 rundest (und diese Verhalten wohl auch haben möchtest) sollte es ggf. nicht "CommercialRound" heissen,
sondern einen Namen haben der auf dieses abweichende Verhalten auch hinweisst.
dotnetlab schrieb am 25.10.2012:
Ok, ich habe vergessen darauf hinzuweisen, dass es sich hier um schweizerischen Standard handelt.
Jakob Lis schrieb am 26.10.2012:
das heißt dann Rappenrundung.
dotnetlab schrieb am 27.10.2012:
@Ralf Schoch
Danke für die Hinweise. Ich habe den Artikel dahingehend angepasst
 

Logge dich ein, um hier zu kommentieren!