| Bu yazıda bir sayının yazıya nasıl çevirebileceğimiz 
				hakkında bir yol göstereceğim, dil olarak C# kullanılacaktır. Öncelikle 
				belirteyim ki programlama ve C# konusunda çok yeniyim. Hemen hemen tüm 
				bildiklerimi bu siteye borçluyum. 
 Aşağıdaki kodda bulunan 
					Oku fonksiyonu kendisine string 
				olarak gönderilen tam sayıyı yazıya çevirmektedir. 
				Kodun çalışma mantığı şöyledir.
 
 oku fonksiyonuna gönderilen string  başına "0" 
				eklemek suretiyle önce 15 haneye tamamlanır, sonra yeni string 3 erli kümeler 
				halinde 5 eşit parçaya bölünür ve her bir üçlü küme tek tek
 rakam dizisine 
				yüklenir. Böylece 5 elemanlı rakam dizisinin her bir elemanında 3 
				karakterli bir string yüklü olur.
 
 1.Aşama
 
 sayımız  32313234 olsun. ilk olarak sayımızın 
				hane sayısını başına 0 eklemek sureti ile 15 e çıkarırız.
 Böylece yeni stringimiz  000000032313234 şeklini alır.
 
 2.Aşama
 
 Stringimiz 3 erli kümeler halinde 5 eşit parçaya 
				bölünür.
 
 1. küme : 000
 2. küme : 000
 3. küme : 032
 4. küme : 313
 5. küme : 234
 
 
 3.aşama
 
 her bir küme 5 elemanlı rakam isimli araya yüklenir ve 
				sonuçta
 
 rakam[0] = "000"
 rakam[5] = "234"
 
 olur
 
 rakam[5][0]="2"  5. kümenin yüzler basamağı;
 rakam[5][1]= "3" 5. kümenin onlar basamağı;
 rakam[5][2]= "4" 5. kümenin birler basamağı;
 
 olur.
 
 
 4.aşama
 
 10 elemanlı 
					yüzler, onlar, birler string dizileri 
				tanımlanır  ve i çleri 
					doldurulur.
 
 örn:
 
 yuzler.SetValue("ikiyuz",2);
 onlar.SetValue("otuz",3);
 birler.SetValue("dört",4);
 
 yani yuzler[2]+onlar[3]+birler[4] = ikiyüzotuzdört 
				olur.
 
 int x 
					=Convert.ToInt16(rakam[5][0].ToString()); yüzler
 
 int y 
					=Convert.ToInt16(rakam[5][1].ToString()); onlar
 
 int z 
					=Convert.ToInt16(rakam[5][2].ToString()); birler
 
 
 
 yuzler[x]+onlar[y]+birler[z] = ikiyüzotuzdört
 
 
 
 bir döngü ile her bir kümeye bu işlemi uygularsanız, 
				1 ve ikinci kümlerin bütün elemanları sıfır olduğu için  sonuçta
 
 
 otuzdört
 üçyüzonuç
 ikiyüzotuzdört
 
 ü elde edersiniz
 
 5.Aşama
 
 hane
				isimli 5 li array tanımlanır ve elemanları trilyon, milyar, milyon, bin ve 
				sonuncusu da boş olacak şekilde ayarlanır. aynı döngü içerisinde her bir 
				kümenin sonuna eklenir
 
 string
					sonuc = "";
 
 for(int
					i = 0 ; i < 5;i++)
 
 {
 sonuc = sonuc +
 
 yuzler[Convert.ToInt16(rakam[i][0].ToString())]+
 
 onlar[Convert.ToInt16(rakam[i][1].ToString())]+
 
 birler[Convert.ToInt16(rakam[i][2].ToString())]+
 
 hane[i];
 
 }
 
 Burada ayarlanması gereken durum eğer bir kümenin 
				bütün elemanları sıfırsa (yukarıdaki gibi) hanenin gözükmemesi gerekir. Yani
 
 000 = yuzler[0]+onlar[0]+birler[0]+hane[0] dersek 
				sonuç trilyon olur bu durumda
 
 if(rakam[0].ToString()!= 
					"000")
 
 hane.SetValue("trilyon ",0);
 
 if(rakam[1].ToString()!= "000")
 
 hane.SetValue("milyar ",1);
 
 if(rakam[2].ToString()!= 
					"000")
 
 hane.SetValue("milyon ",2);
 
 if(rakam[3].ToString()!= 
					"000")
 
 hane.SetValue("bin ",3);
 
 yani rakam[0] (trilyon kümesi) "000" değilse hane[0] = 
				"trilyon" olsun demeliyiz.
 
 Yanlız bir sorun daha var. eğer sayı 1000 ise 
				fonksiyon  bize haklı olarak "birbin"  i döndürür. Bir milyar var, 
				Bir Milyon var ama bir bin ve bir yüz yok. Ben bu sorunu BirSorunu isimli 
				fonksiyonla hallettim.
 
 Aşağıdaki kodu inceleyebilirsiniz.
 
 
 
 
 
					
						Herkese kolay gelsin. Bu arada dileyene DLL i 
				gönderebilirim. İyi çalışmalar.
							| using
								System; 
 namespace
		numbereader
		{
 public
					class SayiOkuma
 {
 
 privatestring[ 
					] yuzler =newstring[10];
 private
					string[ ] onlar =new 
						string[10];
 private
					string[ ] birler =new 
						string[10];
 private
					string[ ] hane = new 
						string[5];
 private
					string[ ] rakam
					=newstring[5];
 // 
						arrayları tanımlıyoruz
  }
				public 
					SayiOkuma()
				{
				}
					// içlerini dolduruyoruz
					yuzler.SetValue("dokuzyüz",9);}
				
				
				public 
								string oku(string
						sayi)
				{yuzler.SetValue("sekizyüz",8);
 yuzler.SetValue("yediyüz",7);
 yuzler.SetValue("altıyüz",6);
 yuzler.SetValue("beşyüz",5);
 yuzler.SetValue("dörtyüz",4);
 yuzler.SetValue("üçyüz",3);
 yuzler.SetValue("ikiyüz",2);
 yuzler.SetValue("yüz",1);
 yuzler.SetValue("",0);
 
 onlar.SetValue("doksan",9);
 onlar.SetValue("seksen",8);
 onlar.SetValue("yetmiş",7);
 onlar.SetValue("altmış",6);
 onlar.SetValue("elli",5);
 onlar.SetValue("kırk",4);
 onlar.SetValue("otuz",3);
 onlar.SetValue("yirmi",2);
 onlar.SetValue("on",1);
 onlar.SetValue("",0);
					birler.SetValue("dokuz",9);
 birler.SetValue("sekiz",8);
 birler.SetValue("yedi",7);
 birler.SetValue("altı",6);
 birler.SetValue("beş",5);
 birler.SetValue("dört",4);
 birler.SetValue("üç",3);
 birler.SetValue("iki",2);
 birler.SetValue("bir",1);
 birler.SetValue("",0);
 
 hane.SetValue("",0);
 hane.SetValue("",1);
 hane.SetValue("",2);
 hane.SetValue("",3);
 hane.SetValue("",4);
 /*  ilk olarak bu arrayın 
							elemanlarını boş olarak ayarlıyoruz eğer küme elemanları
 000 değilse trilyon,milyar,milyon bin değerleri ile dolduruyoruz
 */
 
					int
								uzunluk = sayi.Length;}
				
				privatestring
							birsorunu (string sorun)
				{if(uzunluk > 15)
 
						return
									"Hata girilen değerin uzunluğu en fazla 15 olmalı";try// uzunluk 15 karakterden fazla olmamalı. si
 {
 
						long k = 
									Convert.ToInt64(sayi);
					}
					catch(Exception 
								ex)
					{ 
						return ex.Message.ToString();
					}
					
					
					sayi = "000000000000000"+sayi; sayi = sayi.Substring(uzunluk,15);
					rakam.SetValue(sayi.Substring(0,3),0);
 rakam.SetValue(sayi.Substring(3,3),1);
 rakam.SetValue(sayi.Substring(6,3),2);
 rakam.SetValue(sayi.Substring(9,3),3);
 rakam.SetValue(sayi.Substring(12,3),4);
					if(rakam[0].ToString()!= 
								"000")
 hane.SetValue("trilyon ",0);
 if(rakam[1].ToString()!= 
								"000")
 hane.SetValue("milyar ",1);
 if(rakam[2].ToString()!= 
								"000")
 hane.SetValue("milyon ",2);
 if(rakam[3].ToString()!= 
							"000")
 hane.SetValue("bin ",3);
					string sonuc 
								= ""; 
					
					for(int
								i = 0 ; i < 5;i++)
					{ 
					
					
					sonuc = sonuc + 
							yuzler[Convert.ToInt16(rakam[i][0].ToString())]+
 birsorunu(onlar[Convert.ToInt16(rakam[i][1].ToString())]+birler[Convert.ToInt16(rakam[i][2].ToString())]+hane[i]);
					
					}
					return sonuc;
 
					string
								cozum = "";}if 
							(sorun == "birbin ")
 cozum = "bin ";
					else
 cozum = sorun;    
						
					
					return cozum;
 |  
 
 
                Makale:Sayıları Yazıya Çevirme Örneği C#, Visual C# ve .NET Tolga Güler
 |