Re: Баг или фича?
От: Camarada Россия  
Дата: 18.09.09 04:44
Оценка:
Здравствуйте, 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 и выведите ее на экран или отладчиком посмотрите.
Это не баг и не фича, это голая правда представления чисел с плавающей точкой.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.