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