![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Single [D6, WinXP]
фантазер © (2004-06-16 13:20:00)Здравствуйте все. У меня видимо крыша едет, или я чего-то не понимаю. Вообщем проблема такая:
procedure TForm1.Button1Click(Sender: TObject);
var i,j:single;
begin
i:=0.1;
j:=0;
i:=i-0.1;
if (i)=j then caption:='OK' else caption:='Wrong';
end;
Здесь, в заголовке выводится Wrong. Почему, понять не могу. Значение i после присваивания 0.1 становится 0.10000000149, т.е. не ровно 0.1, а после отнимания - вообще 1.4901161416e-09.
Я в отчаянии. Как мне работать с дробными значениями, если такое творится. Мож я чего не понимаю (скорее так и есть), тогда чего?
Помогите пожалуйста.
Рамиль (2004-06-16 13:30:00) [21]
> Вещественные числа нельзя сравнивать.
вернее нельзя сравнивать на равенство:)
Рамиль (2004-06-16 13:26:00) [22]Вещественные числа нельзя сравнивать.
Можно так
if abs(i - j) < Delta then ...
где Delta - необходимая точность сравнения