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

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

Глюк с while? [D5, Win95/98]


Алиса ©   (2002-02-05 15:29:00) 

Интересно это глюк с while..do.. или я что-то не понимаю:)?
var i:Double;
Begin
i:=0;
while i<1 do
i:=i+0.1
S:=i;
end;
На выходе S=1.1
если:
var i:integer;
Begin
i:=0;
while i<10 do
i:=i+1
S:=i;
end;
На выходе S=10 ??!!!

Спасибо за ответ!


USAtyj   (2002-02-05 17:33:00) [1]

Про вещественные числа была хорошая ссылка уже здесь:
http://www.delphikingdom.com/helloworld/reals.htm


Johnmen   (2002-02-05 15:45:00) [2]

Romkin © прав.


Romkin   (2002-02-05 15:39:00) [3]

var i:Double;
Begin
i:=0;
while round(i * 10) < 10 do
i:=i+0.1
S:=i;
end;
Так все должно получится, это из-за приближенного представления числа с плавающей точкой, посмотри при пошаговых проходах


Johnmen   (2002-02-05 15:38:00) [4]

В 1 случае д.б. 1.0


Наверх

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