Вниз
Скачать: 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.012 c
4-36912
Talla2k
2003-10-19 23:07
2003.12.12
Пути запуска


3-36515
AkaSaint
2003-11-21 16:54
2003.12.12
Изменяю в ClientDataSet одну запись-на сервере изменяется вся tbl


9-36496
Intell
2003-05-21 17:44
2003.12.12
Кто-нибудь умеет читать файлы от GameMaker`а?


1-36758
AndreySoft
2003-11-30 15:35
2003.12.12
BuilderToDelphi


1-36748
Sacred
2003-12-02 01:12
2003.12.12
Противоположность Application.Run?




   Наверх