Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.015 c
1-36628
man
2003-12-01 10:53
2003.12.12
установка real


8-36770
JTAG
2003-08-15 20:58
2003.12.12
О фонтах


14-36837
eukar
2003-11-19 16:24
2003.12.12
DVD/CD-RW vs DVD + CD/RW


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


3-36528
KDS
2003-11-21 12:41
2003.12.12
Ответ на постоянный вопрос: DBF без BDE




   Наверх