c# harflerle rakamın yazılışı, çek, senet rapor gibi işlemlerde

yazılan bir sayının okunuşunun yazılması için kullanılacak bir fonksiyon


 public static string YaziIle(double tutar, int tur)
        {

            int posvirgul;
            string sonuc;

            string[] b1 = new string[10] { "", "BİR", "İKİ", "ÜÇ", "DÖRT", "BEŞ", "ALTI", "YEDİ", "SEKİZ", "DOKUZ" };
            string[] b2 = new string[10] { "", "ON", "YİRMİ", "OTUZ", "KIRK", "ELLİ", "ALTMIŞ", "YETMİŞ", "SEKSEN", "DOKSAN" };
            string[] b3 = new string[7] { "", "KATRİLYON", "TRİLYON", "MİLYAR", "BİN", "", "" };

            string[] gr = new string[6];

            string[] sn = new string[6];
            int[] bs = new int[3];
            string tutars, tutart, tutark, sonuct, sonuck;
            int i, l;
            sonuc = "";
            sonuct = "";
            sonuck = "";

            tutars = tutar.ToString("0.00");
            posvirgul = tutars.IndexOf(',');
    
            tutart = tutars.Substring(0, posvirgul);
            tutark = tutars.Substring(posvirgul + 1, 2);

            while (tutart.Length < 18)
                tutart = "0" + tutart;

            while (tutark.Length < 2)
                tutark = tutart + "0";




            for (i = 0; i < 6; i++) gr[i] = tutart.Substring((3 * i), 3);

            for (l = 0; l < 6; l++)
            {
                bs[0] = Int32.Parse(gr[l][0].ToString());
                if (bs[0] != 0)
                {
                    if (bs[0] != 1)
                    {
                        sn[l] = sn[l] + b1[bs[0]] + "YÜZ";
                    }
                    else
                    {
                        sn[l] = sn[l] + "YÜZ";
                    }
                }

                bs[1] = Int32.Parse(gr[l][1].ToString());
                if (bs[1] != 0)
                {
                    sn[l] = sn[l] + b2[bs[1]];
                }
                bs[2] = Int32.Parse(gr[l][2].ToString());
                if (bs[2] != 0)
                {
                    sn[l] = sn[l] + b1[bs[2]];

                }
                try
                {
                    if (sn[l].Trim().Length != 0)
                    {
                        sn[l] = sn[l] + b3[l];
                    }
                }
                catch
                {
                }

            }
            if (sn[4] == "BİRBİN") sn[4] = "BİN";
            for (i = 0; i < 6; i++)
            {
                sonuct = sonuct + sn[i];
            }

            if (tutark.Substring(0, 1) != "0") sonuck = sonuck + b2[Int32.Parse(tutark.Substring(0, 1))];
            if (tutark.Substring(1, 1) != "0") sonuck = sonuck + b1[Int32.Parse(tutark.Substring(1, 1))];

            if (tur == 0) sonuc = sonuct + ".YTL / " + sonuck + ".KR ";
            if (tur == 1) sonuc = sonuct + ".YTL ";
            if (tur == 2) sonuc = sonuck + ".KR ";

            return sonuc;
        }

Yorum Yaz