I have tested this code :
Console.WriteLine(Math.Round(10.4, 0));
Console.WriteLine(Math.Round(10.5, 0));
Console.WriteLine(Math.Round(10.6, 0));
Console.WriteLine(Math.Round(10.04, 1));
Console.WriteLine(Math.Round(10.05, 1));
Console.WriteLine(Math.Round(10.06, 1));
Console.WriteLine(Math.Round(10.004, 2));
Console.WriteLine(Math.Round(10.005, 2));
Console.WriteLine(Math.Round(10.006, 2));
Console.WriteLine(Math.Round(10.0004, 3));
Console.WriteLine(Math.Round(10.0005, 3));
Console.WriteLine(Math.Round(10.0006, 3));
for Math.Round(10.005, 2) the result is 10.01 while for Math.Round(10.5, 0), Math.Round(10.05, 1) or Math.Round(10.0005,3) the result is 10.
Why Math.Round(10.005, 2) return 10.01 and not 10 ? If default MidpointRounding is Even, why is not the case when i have 2 digits ?
What is the reason of this comportement ?