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

Вниз

установка 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.011 c
3-36510
Hooch
2003-11-21 11:43
2003.12.12
Quantum Grid 4.5


1-36688
афвуд
2003-12-03 11:31
2003.12.12
Выплывающая подсказка а ля Дельфи


1-36718
konstantinov
2003-12-02 00:44
2003.12.12
Оптимизация кода


1-36674
Ivolg
2003-11-29 20:16
2003.12.12
Окно!


6-36786
Pepperok
2003-10-15 14:27
2003.12.12
Как отловить сообщения приходящие на службу сообщений(Net send)





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