Возможный дубликат:
при сравнении двойных значений в С#
Я читал его в другом месте, но действительно забыл ответ, поэтому я прошу здесь еще раз. Этот цикл никогда не заканчивается, если вы его кодируете на любом языке (я тестирую его на С#, С++, Java...):
double d = 2.0;
while(d != 0.0){
d = d - 0.2;
}