1. Ana Sayfa
  2. Nesne Tabanlı Programlama
  3. C# Örnekleri – Sayıyı Yazıya Çevirme

C# Örnekleri – Sayıyı Yazıya Çevirme

sayioku1

Daha önce 5 basamaklı sayıyı yazıya çevirme ve 4 basamaklı sayıyı yazıya çevirme örneklerini paylaşmıştık ama girilen değer 6 veya daha yukarı olduğu zaman bu okuma işlemini nasıl yapacağız şimdi bu konu ile alakalı örneği paylaşalım ilk olarak aşağıdaki form tasarımını yapıyoruz
sayioku
ve kodlarımız

   private string yaziyaCevir(decimal tutar)
        {
            string sTutar = tutar.ToString("F2").Replace('.', ','); // Replace('.',',') ondalık ayracının . olma durumu için            
            string lira = sTutar.Substring(0, sTutar.IndexOf(',')); //tutarın tam kısmı
            string kurus = sTutar.Substring(sTutar.IndexOf(',') + 1, 2);
            string yazi = "";

            string[] birler = { "", "BİR", "İKİ", "Üç", "DÖRT", "BEŞ", "ALTI", "YEDİ", "SEKİZ", "DOKUZ" };
            string[] onlar = { "", "ON", "YİRMİ", "OTUZ", "KIRK", "ELLİ", "ALTMIŞ", "YETMİŞ", "SEKSEN", "DOKSAN" };
            string[] binler = { "KATRİLYON", "TRİLYON", "MİLYAR", "MİLYON", "BİN", "" }; //KATRİLYON'un önüne ekleme yapılarak artırabilir.

            int grupSayisi = 6; //sayıdaki 3'lü grup sayısı. katrilyon içi 6. (1.234,00 daki grup sayısı 2'dir.)
            //KATRİLYON'un başına ekleyeceğiniz her değer için grup sayısını artırınız.

            lira = lira.PadLeft(grupSayisi * 3, '0'); //sayının soluna '0' eklenerek sayı 'grup sayısı x 3' basakmaklı yapılıyor.            

            string grupDegeri;

            for (int i = 0; i < grupSayisi * 3; i += 3) //sayı 3'erli gruplar halinde ele alınıyor.
            {
                grupDegeri = "";

                if (lira.Substring(i, 1) != "0")
                    grupDegeri += birler[Convert.ToInt32(lira.Substring(i, 1))] + "YÜZ"; //yüzler                

                if (grupDegeri == "BİRYÜZ") //biryüz düzeltiliyor.
                    grupDegeri = "YÜZ";

                grupDegeri += onlar[Convert.ToInt32(lira.Substring(i + 1, 1))]; //onlar

                grupDegeri += birler[Convert.ToInt32(lira.Substring(i + 2, 1))]; //birler                

                if (grupDegeri != "") //binler
                    grupDegeri += binler[i / 3];

                if (grupDegeri == "BİRBİN") //birbin düzeltiliyor.
                    grupDegeri = "BİN";

                yazi += grupDegeri;
            }

            if (yazi != "")
                yazi += " TL ";

            int yaziUzunlugu = yazi.Length;

            if (kurus.Substring(0, 1) != "0") //kuruş onlar
                yazi += onlar[Convert.ToInt32(kurus.Substring(0, 1))];

            if (kurus.Substring(1, 1) != "0") //kuruş birler
                yazi += birler[Convert.ToInt32(kurus.Substring(1, 1))];

            if (yazi.Length > yaziUzunlugu)
                yazi += " Kr.";
            else
                yazi += "SIFIR Kr.";

            return yazi;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            label2.Text = yaziyaCevir(Convert.ToDecimal(textBox1.Text));
        }

sayioku1
bu güzel uygulama için hayati şahin‘e teşekkürler.

Yorum Yap

6
Kimler Neler Demiş?

avatar
3 Comment threads
3 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
adminHakanBilisimOgretmeniYusuf Doğanorcun Recent comment authors

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Bildir
Hakan
Ziyaretçi
Hakan

Teşekkürler, çok güzel olmuş, ellerinize sağlık.

Yusuf Doğan
Ziyaretçi
Yusuf Doğan

c# wpf application ‘da mı yapıyorsunuz ?

BilisimOgretmeni
Ziyaretçi
BilisimOgretmeni

sitede wpf örnekleri de mevcut

orcun
Ziyaretçi
orcun

çok güzel olmuş elinize sağlık

BilisimOgretmeni
Ziyaretçi
BilisimOgretmeni

iyi çalışmalar