В результате выполнения следующих методов (C# 2008):
Console.WriteLine(Math.Round(1.4999999999999999));
Console.WriteLine(Math.Round(1.49));
получил два разных результата — 2 и 1.
Первый, естественно, неверен.
Понятно почему так получается — из-за неточности представления числа
в бинарном виде.
Но, с другой стороны, как ни крути — это ошибка!
Или, всё-таки, фича?...