Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];

Вниз

сравнение двух 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.038 c
1-1188384912
Fedool
2007-08-29 14:55
2007.11.18
Автозаполнение формы


2-1193153479
smartleds
2007-10-23 19:31
2007.11.18
Коллеги , подскажите как у StringGrid сделать заданную ячейку


2-1193415518
Neo
2007-10-26 20:18
2007.11.18
чем заменить LIMIT 100 при работе с парадоксом


15-1192431368
kyn66
2007-10-15 10:56
2007.11.18
Иконки для кнопок стандартных операций


15-1192275180
Yozch1
2007-10-13 15:33
2007.11.18
Как правильно инсталлировать программу под гостевым аккаунтом?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский