//
// Rakamlari ingilizce olarak yaziya ceviren program.
//
Const
YirmidenKucukler : Array[1..19] Of String=('one','two','three','four','five','six','seven','eight','nine',
'ten','eleven','twelve','thirteen','fourteen','fifteen','sixteen',
'seventeen','eighteen','nineteen');
Onluklar : Array[1..9] Of String=('ten','twenty','thirty','forty','fifty','sixty','seventy','eighty','ninety');
HataMesaji = 'sayisi cevrim limitlerinin disinda.';
EnKucuk = 1.00;
EnBuyuk = 4294967295.99;
Function SayiAdiniBul(N: LongWord): string;
Begin
Case N of
1..19 : Result:=YirmidenKucukler[N];
20..99 : Result:=Onluklar[N Div 10]+' '+SayiAdiniBul(N Mod 10);
100..999 : Result:=YirmidenKucukler[N Div 100]+' hundred '+SayiAdiniBul(N Mod 100);
1000..999999 : Result:=SayiAdiniBul(N Div 1000)+' thousand '+SayiAdiniBul(N Mod 1000);
1000000..999999999 : Result:=SayiAdiniBul(N Div 1000000)+' million '+SayiAdiniBul(N Mod 1000000);
1000000000..4294967295 : Result:=SayiAdiniBul(N Div 1000000000)+' billion '+SayiAdiniBul(N Mod 1000000000);
End;
End;
Function SayiOku(Sayi : Real): String;
Begin
If (Sayi>=EnKucuk) And (Sayi<=EnBuyuk)
Then Begin
Result:=SayiAdiniBul(Round(Int(Sayi)));
If Not(Frac(Sayi)=0.00) Then Result:=Result+' and '+IntToStr(Round(Frac(Sayi)*100))+'/100';
End
Else Raise ERangeError.CreateFmt('%g '+HataMesaji+' %g..%g',[Sayi,EnKucuk,EnBuyuk]);
End;
//
// Kolay gelsin.
//
// Hakan HAMURCU
//
// hamurcu@delphiturk.com
//