Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Single [D6, WinXP]


Страницы:   1 2

фантазер ©   (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 - необходимая точность сравнения


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо