Article Rss Makaleler

06 Oct 2008 Parayı Türkçe Yazıya Çevirme

45621252.34TL'yi kırkbeşmilyonaltıyüzyirmibirbinikiyüzelliikiTLotuzdörtKURUŞ olarak yazdırmanızı sağlar. Ayrıntılı açıklamayı kod üzerinde iyileştirmeler yaptıktan sonra vereceğim. Şimdilik kullanın.

public string getMoneyToTrString(string number)
    {
        int pos = 0;
        string sol = "";
        while (pos < number.Length && char.IsNumber(number[pos]))
        {
            sol += number[pos];
            pos++;
        }
        pos++;
        string sag = "";
        while (pos < number.Length && char.IsNumber(number[pos]))
        {
            sag += number[pos];
            pos++;
        }

        if (sag.Length != 0)
        {
            sag = sag + "0";
            sag = sag.Substring(0, 2);
        }

        int arraysize = 0;
        if (sol.Length % 3 == 0)
            arraysize = sol.Length / 3;
        else
            arraysize = (sol.Length / 3) + 1;

        int kalan = sol.Length % 3;
        int[] array = new int[arraysize];

        int arraypos = 0;
        if (kalan != 0)
        {
            array[0] = int.Parse(sol.Substring(0, kalan));
            arraypos = 1;
        }

        for (int i = kalan; i + 2 < sol.Length; i = i + 3)
        {
            array[arraypos] = int.Parse(sol.Substring(i, 3));
            arraypos++;
        }

        string result = "";
        string[] sayi = { "", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz" };
        string[] birim = { "", "on", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan", "yüz" };
        string[] birim2 = { "", "bin", "milyon", "milyar", "trilyon" };
        string[] birim3 = { "TL", "KURUŞ" };

        for (int i = array.Length - 1; i >= 0; i--)
        {
            int mod = 0;
            string tmp = "";
            if (array[i] / 100 != 0)
            {
                mod = 1000;
                if ((array[i] % mod) / 100 == 1)
                    tmp += birim[10];
                else
                    tmp += sayi[(array[i] % mod) / 100] + birim[10];
            }
            if (array[i] / 10 != 0)
            {
                mod = 100;
                tmp += birim[(array[i] % mod) / 10];
            }

            mod = 10;
            tmp += sayi[(array[i] % mod)];

            result = tmp + birim2[array.Length - 1 - i] + result;
        }
        result += birim3[0];

        if (sag != "")
        {
            if (int.Parse(sag) / 10 != 0)
                result += birim[(int.Parse(sag) % 100) / 10];

            result += sayi[(int.Parse(sag) % 10)];

            result += birim3[1];
        }
        return result;
    }

Kategoriler: C#

Kategoriler

Son Makaleler