There are two ways of rounding (not specifying MidPointRounding just means that it takes the default option, which is ToEven). The type of rounding determines what happens with 0.5.
Away from zero: like it says, it rounds to the number 'away from the zero' (so to the bigger absolute number). E.g.:
2.5 -> 3
1.5 -> 2
0.5 -> 1
-0.5 -> -1
-1.5 -> -2
-2.5 -> -3
To even: like it says, it rounds to the nearest even number. E.g.:
2.5 -> 2
1.5 -> 2
0.5 -> 0
-0.5 -> 0
-1.5 -> -2
-2.5 -> -2
EDIT: It seems what you want it 'Towards Zero' rounding. As far as I'm aware, that is not an option in C#.
EDIT 2: Since the default C# methods offer no help, you'll have write a custom function. Here you can find an interesting blog about different rounding methods. I have not tested it myself, but this is what is suggested for a towards zero rounding:
public static int RoundToNearestRoundHalfTowardZero(decimal value)
{
// If value is non-negative, subtract 0.5 and take the next
// greater integer. If value is negative, add 0.5 and take the
// next lower integer.
if (value >= 0)
return (int)Math.Ceiling(value - 0.5m);
else
return (int)Math.Floor(value + 0.5m);
}