Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.18;
Скачать: CL | DM;

Вниз

сравнение двух TDateTime ???   Найти похожие ветки 

 
Цукор5   (2007-10-26 00:01) [0]


private
   hTime:DWord;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
 hTime:=GetTickCount;
 Timer1.Enabled:=True; // Timer1.Interval:=20;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
 var Q:DWord;
     D,hDate:TDateTime;
begin
 Q:=GetTickCount-hTime;
 D:= Q / (1000 * 60 * 60 *24) ;
 Label1.Caption:=DateToStr(D)+"__"+TimeToStr(D);
 //
 hDate:=EncodeTime(0,0,5,0);
 Label2.Caption:=DateToStr(hDate)+"__"+TimeToStr(hDate);
 if hDate=D then Windows.Beep(800,200);
end;


по непонятным причинам на одном ПК "событие" происходит, на втором нет.
Тоже самое если условие hDate-D=0.

И только если условие hDate-D<0 , тогда срабатывает на обеих.
В чем причина ???


 
Сусл ©   (2007-10-26 00:04) [1]

причина в том, что нельзя стравнивать числа с плавающей точкой равенством. это их особенности.

если с точностью до даты, то trunc сделай перед сравнением или сравнивай
abs(hDate-D) < 0.0001


 
Цукор5   (2007-10-26 00:14) [2]

2 Сусл ©
>или сравнивай abs(hDate-D) < 0.0001

Что-то этот вариант не работает.


 
Цукор5   (2007-10-26 00:25) [3]

2 Сусл ©   (26.10.07 00:04) [1]

>abs(hDate-D) < 0.0001

а нужно abs(hDate-D) < 0.00001 !
Количеством нулей ошибся ;)


 
Юрий Зотов ©   (2007-10-26 00:37) [4]

Боже...


 
Сусл ©   (2007-10-26 00:38) [5]

почитай на www.delphikingdom.ru есть статья про вещественные числа
автор Антон Григорьев. По идее каждому эту статью надо прочесть.

точную ссылку не дам, сам ищи...


 
Германн ©   (2007-10-26 01:01) [6]


> Сусл ©   (26.10.07 00:38) [5]

Поздравляю, Дима! Ты вспомнил таки.
:-)


 
Сусл ©   (2007-10-26 12:46) [7]


>  [6] Германн ©   (26.10.07 01:01)
>
> > Сусл ©   (26.10.07 00:38) [5]
>
> Поздравляю, Дима! Ты вспомнил таки.
> :-)

тебе скушно?



Страницы: 1 вся ветка

Текущий архив: 2007.11.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
2-1193617178
Nikola
2007-10-29 03:19
2007.11.18
Отображение данных в DBGrid


15-1192042472
Galinka
2007-10-10 22:54
2007.11.18
Когда "кило" это 2 в 10-ой, а когда - в 10 в 3-ей?


6-1174065437
Сет-тер
2007-03-16 20:17
2007.11.18
Расширение прав


15-1192094854
Prohodil Mimo
2007-10-11 13:27
2007.11.18
Как зайти в меню DSL-модема?


15-1192117039
Galinka
2007-10-11 19:37
2007.11.18
Можно ли запустить C++ Builder "с чистого листа"