Автор Александр
Code: |
{------------------------ Деньги прописью ---------------------} function TextSum(S: double): string;
function Conv999(M: longint; fm: integer): string; const
c1to9m: array[1..9] ofstring[6] = ('один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять'); c1to9f: array[1..9] ofstring[6] = ('одна', 'две', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять'); c11to19: array[1..9] ofstring[12] = ('одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать'); c10to90: array[1..9] ofstring[11] = ('десять', 'двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто'); c100to900: array[1..9] ofstring[9] = ('сто', 'двести', 'триста', 'четыреста', 'пятьсот', 'шестьсот', 'семьсот', 'восемьсот', 'девятьсот'); var
s: string; i: longint; begin
s := ''; i := M div100; if i <> 0then s := c100to900[i] + ' '; M := M mod100; i := M div10; if (M > 10) and (M < 20) then s := s + c11to19[M - 10] + ' ' else begin if i <> 0then s := s + c10to90[i] + ' '; M := M mod10; if M <> 0then if fm = 0then s := s + c1to9f[M] + ' ' else s := s + c1to9m[M] + ' '; end; Conv999 := s; end;
{--------------------------------------------------------------} var
i: longint; j: longint; r: real; t: string;
begin
t := '';
j := Trunc(S / 1000000000.0); r := j; r := S - r * 1000000000.0; i := Trunc(r); if j <> 0then begin t := t + Conv999(j, 1) + 'миллиард'; j := j mod100; if (j > 10) and (j < 20) then t := t + 'ов ' else case j mod10of 0: t := t + 'ов '; 1: t := t + ' '; 2..4: t := t + 'а '; 5..9: t := t + 'ов '; end; end;
j := i div1000000; if j <> 0then begin t := t + Conv999(j, 1) + 'миллион'; j := j mod100; if (j > 10) and (j < 20) then t := t + 'ов ' else case j mod10of 0: t := t + 'ов '; 1: t := t + ' '; 2..4: t := t + 'а '; 5..9: t := t + 'ов '; end; end;
i := i mod1000000; j := i div1000; if j <> 0then begin t := t + Conv999(j, 0) + 'тысяч'; j := j mod100; if (j > 10) and (j < 20) then t := t + ' ' else case j mod10of 0: t := t + ' '; 1: t := t + 'а '; 2..4: t := t + 'и '; 5..9: t := t + ' '; end; end;
i := i mod1000; j := i; if j <> 0then t := t + Conv999(j, 1); t := t + 'руб. ';
i := Round(Frac(S) * 100.0); t := t + Long2Str(i) + ' коп.'; TextSum := t; end; |
- Назад
- Вперёд >>
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!