![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
без 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]Очень просто: копируй код конвертации в свой юнит и юзай