![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
типы переменных
IgoX © (2005-07-13 13:45:00)Привет всем!
var fio_len :integer;
var pr :real;
..
pr:=15/100;
fio_len:=Round(10*pr);
Всегда выдает значение 1 как бы неменял значения переменных. В delphi нерублю вот и спрашиваю а какие типы данных нужны что бы это работало правильно?
Kolan (2005-07-13 15:31:00) [1]
Real types + F1вDelphi
float + F1вC
и сравнивать
Digitman (2005-07-13 15:19:00) [2]
> Всегда выдает значение 1 как бы неменял значения переменных
вот только вратьне надо !
> округление какоето непонятное
а какое для тебя "понятное" ?
ты считаешь, что только то округление, о котором ты имеешь некое представление, и есть единственно существующее и верное округление в мире ?
IgoX (2005-07-13 15:06:00) [3]а что используется в Delphi вместо float
Igor_thief (2005-07-13 14:34:00) [4]Может тебе нужен SimpleRoundTo (модуль Math)?
Kolan (2005-07-13 14:29:00) [5]Точно поленился не набрал. Действительно будет меньше 0,15...
:')
evvcom (2005-07-13 14:11:00) [6]А кто сказал, что 15/100 = 0.15 для переменной real?
Kolan (2005-07-13 14:01:00) [7]Хм у вас ошибка где то проверил
ShowMessage(IntToStr(Round(1.5)));
Выдает 2
IgoX (2005-07-13 13:56:00) [8]округление какоето непонятное.
Kolan (2005-07-13 13:56:00) [9]
> нужны что бы это работало правильно?
А как правильно.
ShowMessage(IntToStr(Round(10*2)));Выдает 20 :)
Kray (2005-07-13 13:51:00) [10]хелп по roundu посмотри. там оч. красивый пример есть.
возможно проблема не в типах, а в алгоритмах округления.
Выбери по See Also в помощи для Rounda какую нито еще функцию по округлению.
DiamondShark (2005-07-13 13:49:00) [11]
> Всегда выдает значение 1 как бы неменял значения переменных
Это как?
> бы это работало правильно?
Какой результат считается правильным?
Kolan (2005-07-13 13:48:00) [12]
> Всегда выдает значение
А что от раза к разу что - то vменяется.
pr = 0,15
pr * 10 = 1,5
Round(1,5) = 1;
У вас все правильно работает