rendered paste bodyfunction SumaZod(SumaSk: double):string;
var
SumaStr: string;
Centai: integer;
Litai : integer;
CentaiStr: string;
procedure calc10_19();
begin
Case Litai of
10 : SumaStr:= SumaStr + ' deðimt';
11 : SumaStr:= SumaStr + ' vienuolika';
12 : SumaStr:= SumaStr + ' dvylika';
13 : SumaStr:= SumaStr + ' trylika';
14 : SumaStr:= SumaStr + ' keturiolika';
15 : SumaStr:= SumaStr + ' penkiolika';
16 : SumaStr:= SumaStr + ' ðeðiolika';
17 : SumaStr:= SumaStr + ' septyniolika';
18 : SumaStr:= SumaStr + ' aðtuoniolika';
19 : SumaStr:= SumaStr + ' devyniolika';
end;
end;
procedure calc20_99();
begin
if Litai >= 90 then SumaStr:= SumaStr + ' devyniasdeðimt'
else
if Litai >= 80 then SumaStr:= SumaStr + ' aðtuoniasdeðimt'
else
if Litai >= 70 then SumaStr:= SumaStr + ' septyniasdeðimt'
else
if Litai >= 60 then SumaStr:= SumaStr + ' ðeðiasdeðimt'
else
if Litai >= 50 then SumaStr:= SumaStr + ' penkiasdeðimt'
else
if Litai >= 40 then SumaStr:= SumaStr + ' keturiasdeðimt'
else
if Litai >= 30 then SumaStr:= SumaStr + ' trisdeðimt'
else
if Litai >= 20 then SumaStr:= SumaStr + ' dvideðimt';
Litai:= Litai mod 10;
end;
procedure calc1_9();
begin
Case Litai of
1 : SumaStr:= SumaStr + ' vienas';
2 : SumaStr:= SumaStr + ' du';
3 : SumaStr:= SumaStr + ' trys';
4 : SumaStr:= SumaStr + ' keturi';
5 : SumaStr:= SumaStr + ' penki';
6 : SumaStr:= SumaStr + ' ðeði';
7 : SumaStr:= SumaStr + ' septyni';
8 : SumaStr:= SumaStr + ' aðtuoni';
9 : SumaStr:= SumaStr + ' devyni';
end;
end;
procedure calc100_200();
begin
SumaStr:= SumaStr + ' ðimtas';
Litai := Litai - 100;
end;
procedure calc200_1000();
var
LitaiUse: integer;
begin
LitaiUse := Litai;
Litai:= (Litai - Litai mod 100) div 100;
calc1_9();
SumaStr:= SumaStr + ' ðimtai';
Litai := LitaiUse - Litai *100;
end;
procedure calc9_1000();
begin
if (Litai>199) and (Litai<1000) then calc200_1000();
if (Litai>99) and (Litai<200) then calc100_200();
if (Litai>19) and (Litai<100) then calc20_99();
if (Litai>9) and (Litai<20) then calc10_19();
end;
procedure calcT_2T();
begin
SumaStr:= SumaStr + ' tûkstantis';
Litai := Litai - 1000;
end;
procedure calc2T_100T();
var
LitaiUse: integer;
begin
LitaiUse:= Litai;
Litai:= (Litai - Litai mod 1000) div 1000;
LitaiUse:= LitaiUse - Litai *1000;
calc9_1000();
if (Litai>1) and (Litai<10) then
begin
calc1_9();
SumaStr := SumaStr + ' tûkstanèiai';
end else
if Litai = 1 then
SumaStr:= SumaStr + ' vienas tûkstantis'
else
SumaStr:= SumaStr + ' tûkstanèiø';
Litai := LitaiUse;
end;
procedure calc1M_100M();
var
LitaiUse: integer;
begin
LitaiUse := Litai;
Litai:= (Litai - Litai mod 1000000) div 1000000;
LitaiUse:= LitaiUse - Litai * 1000000;
calc9_1000();
if (Litai > 1) and (Litai < 10) then
begin
calc1_9();
SumaStr := SumaStr + ' milijonai'
end else
if Litai = 1 then
SumaStr := SumaStr + ' vienas milijonas'
else SumaStr := SumaStr + ' milijonø';
Litai := LitaiUse;
end;
begin
Centai := round(Frac(SumaSk) * 100);
Litai := round(Int(SumaSk));
if (Litai div 100=1) or (Litai div 1000=1) or (Litai div 100000=1) or (Litai div 100000000=1) then
SumaStr := 'Vienas';
if (Litai>999999) and (Litai<100000000) then
calc1M_100M();
if (Litai>1999) and (Litai<1000000) then
calc2T_100T();
if (Litai>999) and (Litai < 2000) then
calcT_2T();
calc9_1000();
if (Litai > 0) and (Litai < 10) then calc1_9();
centaistr := IntToStr(Centai);
if Length(CentaiStr) = 1 then CentaiStr:= '0' + CentaiStr;
if Length(SumaStr) = 0 then
SumaStr:= '0';
SumaStr := SumaStr + ' Lt. ' + CentaiStr + ' ct.';
SumaStr:= Trim(SumaStr);
SumaStr[1]:= Upcase(SumaStr[1]);
Result:= SumaStr;
end;