Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

без SYSUTILS.PAS [D5]


Maksss ©   (2002-11-15 02:33:00) 

как перевести без сисутилов double или currency в стринг вида 1234,23 или 1 234,23?


Victor_Cr   (2002-11-15 09:12:00) [1]

Примерно вот так... Дорабатывать будешь по потребности (например отрицательные числа, числа меньше единицы)

Num := 1234.23;
LastDigits := Num - Trunc(Num);
CountLDigits := 0;
Quit := True;
while LastDigits > 0 do
begin
Inc(CountLDigits);
Num := Num * 10;
LastDigits := Num - Trunc(Num);
end;
For i := 1 to CountLDigits do
begin
Double_To_Int := Chr((Num mod 10)+48) + Double_To_Int;
Num := Num div 10;
end;
Double_To_Str := "." + Double_To_Str;
while Num > 0 do
begin
Double_To_Int := Chr((Num mod 10)+48) + Double_To_Int;
Num := Num div 10;
end;


Но можно сделать и не по программерски вызвать процедуру:
procedure Str(X [: Width [: Decimals ]]; var S);
Которая содержиться в модуле SYSTEM.


Slym   (2002-11-15 07:30:00) [2]

Очень просто: копируй код конвертации в свой юнит и юзай


Наверх

Титульная страница Поиск, карта сайта Написать письмо