By default, Math.Round
uses a form of rounding called Banker's Rounding, which rounds to the nearest even integer when the input is halfway between two integers.
See Why does .NET use banker's rounding as default? for an understanding of this design decision.
If you don't like this behaviour, you can always use this overload of Math.Round
, which lets you specify the MidPointRoundingMode
(ToEven, AwayFromZero).