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