Round ist nicht gleich round
Wer schonmal in den Genuss gekommen ist mit .NET und dem MS-SQL Server zu arbeiten und gleichzeitig im .NET Code und auf dem SQL-Server Berechnungen vornehmen musste, kennt hoffentlich bereits das Default problem der beiden Round-Methoden. Wenn nicht, hier ein kleiner Hinweis.
Round auf dem MSSQL-Server
Auf dem SQL-Server benutzt die Round-Methode als default die variation AwayFromZero.(Kaufmännisches Runden)
Round in .NET
In .NET Framework ist die Default Methode beim Runden ToEven. (Runden zur nächsten geraden Zahl)
Lösung
Bei beiden Systemen sollten wir uns immer sicher sein, welche Variante wir benutzen möchten und daher diese immer explizit mit angeben und nicht auf die Defaultwerte vertrauen.
C#:
Math.Round(value, MidpointRounding.ToEven) Math.Round(value, MidpointRounding.AwayFromZero)