Hızlı Konu Açma

Hızlı Konu Açmak için tıklayınız.

Son Mesajlar

Konulardaki Son Mesajlar

Reklam

Forumda Reklam Vermek İçin Bize Ulaşın

Sayıyı yazıya çeviren fonksiyon

YaSa22

Fahri Üye
Fahri Üye
Katılım
12 Temmuz 2014
Mesajlar
2,293
Tepkime puanı
2
Puanları
0
Konum
GTA
Parametre olarak verilen bir sayıyı yazıya çeviren fonksiyondur.

Kod:

Const
BIRLER : Array[0..9] Of String = ('', 'Bir', 'İki', 'Üç', 'Dört', 'Beş', 'Altı',
'Yedi', 'Sekiz', 'Dokuz');
ONLAR : Array[0..9] Of String = ('', 'On', 'Yirmi', 'Otuz', 'Kırk', 'Elli', 'Altmış',
'Yetmis', 'Seksen', 'Doksan');
DIGER : Array[0..5] Of String = ('', 'Bin', 'Milyon', 'Milyar', 'Trilyon', 'Katrilyon');


Function uSayiyiYaziyaCevir(Num : Double) : String;


Function SmallNum(Num : Int64) : String;
Var
S : String[3];
Begin
Result := '';
S := IntToStr(Num);
If (Length(S) = 1) Then
S := '00' + S
Else
If (Length(S) = 2) Then
S := '0' + S;
If S[1] <> '0' Then
If S[1] <> '1' Then
Result := BIRLER[StrToInt(S[1])] + 'Yüz'
Else
Result := 'Yüz';
Result := Result + ONLAR[StrToInt(S[2])];
Result := Result + BIRLER[StrToInt(S[3])];
End;


Var
i, j, n, Nm : Int64;
S, Sn : String;


Begin
S := FormatFloat('0', Num);
Sn := '';
If Num = 0 Then
Sn := 'Sıfır'
Else
If Length(S) < 4 Then
// Sn := SmallNum(RountNum)
Sn := SmallNum(Round(Num))
Else
Begin
I := 1;
J := Length(S) Mod 3;
If J = 0 Then
Begin
J := 3;
N := Length(S) Div 3 - 1;
End
Else
N := Length(S) Div 3;
While i < Length(S) Do
Begin
Nm := StrToInt(Copy(S, I, J));
If (Nm = 1) And (N = 1) Then
Begin
Nm := 0;
Sn := Sn + SmallNum(Nm) + Diger[N];
End;
If Nm <> 0 Then
Sn := Sn + SmallNum(Nm) + Diger[N];
I := I + J;
J := 3;
N := N - 1;
End;
End;
Result := Sn;
End;
// örnek
procedure TForm1.Button2Click(Sender: TObject);
begin
ShowMessage( uSayiyiYaziyaCevir(78974642));
end;

 

Users Who Are Viewing This Konu (Users: 0, Guests: 1)

Üst