Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.12;
Скачать: CL | DM;

Вниз

установка real   Найти похожие ветки 

 
man ©   (2003-12-01 10:53) [0]

Привет всем! Такой вопрос: нужна ф-я,чтобы установить для перем. типа real целую часть = integer1,дробную - integer2. Заранее всем большое спасибо!


 
Романов Р.В. ©   (2003-12-01 10:58) [1]

Такой функции нет придется писать самому


 
Silver Alex ©   (2003-12-01 10:59) [2]

Trunc и Frac


 
Digitman ©   (2003-12-01 11:00) [3]

т.е. если, к примеру, Integer2 = 672, то это значение с т.з. результата следует рассматривать как "шестьсот семьдесят две тысячных" ? так что ли ?


 
Anatoly Podgoretsky ©   (2003-12-01 11:06) [4]

00672 :-)


 
man ©   (2003-12-01 11:12) [5]

Всё верно.
А если в общем случае. Формат хранения real не подскажите?


 
Anatoly Podgoretsky ©   (2003-12-01 11:13) [6]

Что верно?


 
REA ©   (2003-12-01 11:19) [7]

StrToFloat(IntToStr(IntPart)+DecimalSeparator+IntToStr(FracPart))


 
Anatoly Podgoretsky ©   (2003-12-01 11:26) [8]

Хранение дробной части 0.6 и 0.06 будет одинаковым - 6


 
Digitman ©   (2003-12-01 11:29) [9]


> man


не получится.
см.

> Anatoly Podgoretsky © (01.12.03 11:06) [4]


без 3-го параметра Integer3, отражающего кол-во результирующих значащих разрядов в дробной части будущего real-значения, преобразование не может быть осуществлено однозначно

и действительно - то ли это будет .672, то ли .0672, то ли .00672 ... совершенно ж разные результаты !


 
man ©   (2003-12-01 11:37) [10]

>Digitman
Согласен,пусть будет 3 параметра.


 
TUser ©   (2003-12-01 11:45) [11]

r:=int1+int2/(length(inttostr(int2))*10)


 
Digitman ©   (2003-12-01 12:02) [12]

i1:= 33;
i2:=672;
i3:=5;
s:= format("%d.%." + IntToStr(i3) + "d" , [i1, i2]);
showmessage(s);


 
man ©   (2003-12-01 12:02) [13]

Так что с форматом хранения,
чтоб не делать доп.преобр.,а напрямую конвертировать


 
Digitman ©   (2003-12-01 12:03) [14]

+

r := strtofloat(s);


 
REA ©   (2003-12-01 12:07) [15]

А тебе зачем? В ini файл небось записать?


 
Digitman ©   (2003-12-01 12:26) [16]


> а напрямую конвертировать


не занимайся ерундой
пусть за тебя этим занимается FPU - он это сделает гораздо быстрей и эффективней

function Convert(IntPart, FracPart, Prec: Integer): Real;
begin
Result := IntPart + FracPart/Power(10, Prec);
end;



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

Текущий архив: 2003.12.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
1-36744
User_OKA
2003-12-01 09:36
2003.12.12
Использование компонентов


1-36717
tipman
2003-12-02 11:58
2003.12.12
Вопрос о размере приложения - почему?


14-36835
mfender
2003-11-19 16:09
2003.12.12
Забавное мнение...


1-36750
oens
2003-12-01 22:13
2003.12.12
прокрутка


1-36695
alex_M
2003-12-02 18:09
2003.12.12
Есть 2 TListView, как определить какое из них активно.