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

Вниз

типы переменных   Найти похожие ветки 

 
IgoX   (2005-07-13 13:45) [0]

Привет всем!
var fio_len :integer;
var pr      :real;
..
pr:=15/100;
fio_len:=Round(10*pr);

Всегда выдает значение 1 как бы неменял значения переменных. В delphi нерублю вот и спрашиваю а какие типы данных нужны что бы это работало правильно?


 
Kolan ©   (2005-07-13 13:48) [1]


> Всегда выдает значение

А что от раза к разу что - то vменяется.
pr = 0,15
pr * 10 = 1,5
Round(1,5) = 1;

У вас все правильно работает


 
DiamondShark ©   (2005-07-13 13:49) [2]


> Всегда выдает значение 1 как бы неменял значения переменных

Это как?


> бы это работало правильно?

Какой результат считается правильным?


 
Kray ©   (2005-07-13 13:51) [3]

хелп по roundu посмотри. там оч. красивый пример есть.
возможно проблема не в типах, а в алгоритмах округления.
Выбери по See Also в помощи для Rounda какую нито еще функцию по округлению.


 
IgoX   (2005-07-13 13:56) [4]

округление какоето непонятное.


 
Kolan ©   (2005-07-13 13:56) [5]


> нужны что бы это работало правильно?

А как правильно.

ShowMessage(IntToStr(Round(10*2))); Выдает 20 :)


 
Kolan ©   (2005-07-13 14:01) [6]

Хм у вас ошибка где то проверил
ShowMessage(IntToStr(Round(1.5)));
Выдает 2


 
evvcom ©   (2005-07-13 14:11) [7]

А кто сказал, что 15/100 = 0.15 для переменной real?


 
Kolan ©   (2005-07-13 14:29) [8]

Точно поленился не набрал. Действительно будет меньше 0,15...
:")


 
Igor_thief   (2005-07-13 14:34) [9]

Может тебе нужен SimpleRoundTo (модуль Math)?


 
IgoX   (2005-07-13 15:06) [10]

а что используется в Delphi вместо float


 
Digitman ©   (2005-07-13 15:19) [11]


> Всегда выдает значение 1 как бы неменял значения переменных


вот только врать не надо !


> округление какоето непонятное


а какое для тебя "понятное" ?

ты считаешь, что только то округление, о котором ты имеешь некое представление, и есть единственно существующее и верное округление в мире ?


 
Kolan ©   (2005-07-13 15:31) [12]

Real types + F1 в Delphi

float + F1 в C

и сравнивать



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.108 c
14-1120628954
Aelita
2005-07-06 09:49
2005.07.31
Уборщица-хакер


6-1113822641
Gek1
2005-04-18 15:10
2005.07.31
Socket Error 10038


4-1117618328
-=S.S=-
2005-06-01 13:32
2005.07.31
Работа с giveio.sys


4-1117761498
_Seldon_
2005-06-03 05:18
2005.07.31
Низкоуровневый хук на клавиатуру


1-1120997275
xroot
2005-07-10 16:07
2005.07.31
Абсолютные координаты компонента





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский