LOGO

LOGO
LOGO
ads header

Breaking News

Sayılaı yazıya çevirme

 


static string SayiToYazi(string sayi)
{
    int max_basamak = 30;
    string[] birler = { "", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz" };
    string[] onlar = { "", "on", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan" };
    // daha büyük sayılar için: http://dalt.in/Kf49Z
    string[] binler = { "oktilyon", "septilyon", "seksilyon", "kentilyon", "katrilyon", "trilyon", "milyar", "milyon", "bin", "" };
    int[] basamaklar = new int[3];
    string sonuc = "";
    //sayının kullanılmayan basamaklarını sıfırla doldur
    sayi = sayi.PadLeft(max_basamak, '0');
    //sayıyı üçerli basamaklara ayır
    for (int i = 0; i < max_basamak / 3; i++)
    {
        string temp = "";
        //yüzler basamağı
        basamaklar[0] = (int)(sayi[i * 3] - '0');
        //onlar basamağı
        basamaklar[1] = (int)(sayi[i * 3 + 1] - '0');
        //birler basamağı
        basamaklar[2] = (int)(sayi[i * 3 + 2] - '0');

        if (basamaklar[0] == 0)
            temp = ""; //yüzler basamağı boş
        else
            if (basamaklar[0] == 1)
                temp = "yüz"; //yüzler basamağında 1 varsa
            else
                temp = birler[basamaklar[0]] + "yüz";  // birleştir

        //yüzler+onlar+birler basamağını birleştir
        temp += onlar[basamaklar[1]] + birler[basamaklar[2]];

        //basamak değeri oluşmadıysa yani 000 ise binler basamağını ekle
        if (!string.IsNullOrEmpty(temp)) temp += binler[i];
        //birbin olmaz
        if ((i > 1) && (temp.Equals("birbin"))) temp = "bin";
        if (temp != "") sonuc += temp + " ";
    }
    if (string.IsNullOrEmpty(sonuc.Trim()))
        sonuc = "sıfır";
    return sonuc.Trim();
}

static string SayiToYazi(int sayi)
{
    return SayiToYazi(sayi.ToString());
}

static void Main(string[] args)
{
    Console.WriteLine(SayiToYazi("1234567890"));

    Console.ReadKey();
}

Hiç yorum yok