I wrote a simple method to test this.
using System;
namespace round_test
{
class MainClass
{
public static void Main (string[] args)
{
double x = 0d;
while (x < 5d)
{
Console.WriteLine("actual: " + x.ToString());
Console.WriteLine("rounded: " + Math.Round(x).ToString());
x += 0.1d;
}
}
}
}
The output using mono wasn't very consistent. For instance, 2.5 -> 3 while the rest of the n.5 -> closest even number to n (4.5 -> 4, 3.5 -> 4). (full output here). Odd behaviour, bug??
EDIT: It seems there are two types of rounding, explained on MSDN. The default is banker's rounding.