Şu ana kadar birçok kod gördüm bu konuda yazılan ama çok uzun ve gereksiz
işlemler yaptırmışlar. Programın boyunutunu arttırdığı gibi hızınıda düşürmek istemiyorsanız
aşağıdaki kodu bir deneyin... Umarım işinize yarar.
(BİLGİ PAYLAŞTIKÇA GÜZELDİR!!!)
Türkcan Kaan FİDAN.
{****************************************************
Name : RakamaCevir function
Using : RakamaCevir(Sayi:Double)
Copyright : Türkcan Kaan FİDAN
Date : 15.02.2000
****************************************************}
function RakamaCevir(Sayi: Double):String ;
const
birler: array[1..9] of string = ('BİR','İKİ','ÜÇ','DÖRT','BEŞ','ALTI','YEDİ','SEKİZ','DOKUZ');
onlar : array[1..9] of string = ('ON','YİRMİ','OTUZ','KIRK','ELLİ','ALTMIŞ','YETMİŞ','SEKSEN','DOKSAN');
katlar: array[1..6] of string = ('YÜZ','BİN','MİLYON','MİLYAR','TRİLYON','KATRİLYON'); // dahada arttırılabilir...
var
Rakam: string;
Bolum, Sonuc, b : double;
Kat: integer;
begin
for Kat := 6 downto 1 do
begin
bolum := int(Sayi/Power(1000,Kat-1));
b := bolum ;
if bolum <> 0 then begin
if bolum>199 then begin
sonuc := Int(bolum / 100);
rakam := rakam+birler[Trunc(sonuc)];
bolum := bolum-sonuc*100 ;
rakam := rakam+katlar[1];
end;
if (bolum>99) and (bolum <= 199) then begin
rakam := rakam+katlar[1];
bolum := bolum-100;
end;
if (bolum>9) and (bolum <= 99) then begin
sonuc := int(bolum/10);
rakam := rakam+onlar[Trunc(sonuc)];
bolum := int(bolum-sonuc*10);
end;
if (bolum>0) and (bolum<=9) then
if (Sayi>1999) or (Sayi<1000) then
rakam := rakam + birler[trunc(bolum)];
if Kat <> 1 then
rakam := rakam+katlar[Kat]+' '; // 5-4-3-2-1
Sayi := Sayi-(b*power(1000,Kat-1));
end;
end;
RakamaCevir := Rakam;
end;
örnek :
label1.caption := 'Yalnız '+RakamaCevir( Query2ODEMETUTARI.Value )+ ' TL dir';