Главная страница
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.028 c
3-1183995926
rule
2007-07-09 19:45
2007.11.18
почему в compound sql statement при подулючении к MSSQL Server


2-1193478684
Alex8
2007-10-27 13:51
2007.11.18
Объявление переменных смежных модулей


15-1192210120
ICQshnik
2007-10-12 21:28
2007.11.18
Как обезопасить свой ICQ?..


2-1193313998
DimOk
2007-10-25 16:06
2007.11.18
Удаление файла


15-1190725346
Piter
2007-09-25 17:02
2007.11.18
Синхронизация в PHP, многопоточность