When using Math.Roundyou have two rounding options x.5:
Banker round / round to even. It avoids prejudice, sometimes rounding up (1.5 => 2) and sometimes rounding down (0.5 => 0), it is used by default if you do not specify a parameter.
Int32 i=Math.Round(d, MidpointRounding.ToEven);
The rounding you study at school, where it is always rounded to infinity (0.5 => 1, -0.5 => - 1)
Int32 i=Math.Round(d, MidpointRounding.AwayFromZero);