Oct 27, 2007 23:33
Приятель показал замечательный баг, который он только что искоренил в коде. Все мы знаем, что floating-point переменные сравнивать на равенство очень опасно, но ведь всё равно иногда сравниваем, да? Так вот, имелся такой код:
double x = ;
double y = x;
Read more... )
Leave a comment
Comments 18
Reply
Reply
Reply
Reply
Самое печальное, что нет хорошего универсального решения. Дейкстра где-то писал, что они однажды решили сделать в каком-то компиляторе операцию равенства между вещественными числами так, чтобы она пренебрегала парой последних битов. Оказалось еще хуже: они потеряли свойство (A = B) & (B = C) ⇒ (A = C) и последствия были тяжелы...
Reply
Reply
Reply
Reply
Reply
> // Сюда программа не попадает никогда, даже когда игрека никто не менял!!!
- вот тут так и хочется добавить «-- WTF?!» Так что WTF оно WTF и есть. :)
Reply
Reply
Leave a comment