Fatura basarken veya finansal işlemlerde rakamsal ifadeyi yazıya çevirmek için gerekli fonksiyon
public static string YaziyaCevir(String tutars)
{
decimal tutar = decimal.Parse(tutars);
string sTutar = tutar.ToString("F2").Replace('.', ',');
string lira = sTutar.Substring(0, sTutar.IndexOf(','));
string kurus = sTutar.Substring(sTutar.IndexOf(',') + 1, 2);
string yazi = "";
string[] birler = { "", "Bir", "İki", "Üç", "Dört", "Beş", "Altı", "Yedi", "Sekiz", "Dokuz" };
string[] onlar = { "", "On", "Yirmi", "Otuz", "Kırk", "Elli", "Altmış", "Yetmiş", "Seksen", "Doksan" };
string[] binler = { "Katrilyon", "Trilyon", "Milyar", "Milyon", "Bin", "" };
int grupSayisi = 6;
string grupDegeri;
for (int i = 0; i < grupSayisi * 3; i += 3)
{
grupDegeri = "";
if (lira.Substring(i, 1) != "0")
grupDegeri += birler[Convert.ToInt32(lira.Substring(i, 1))] + "Yüz";
if (grupDegeri == "BirYüz")
grupDegeri = "Yüz";
grupDegeri += onlar[Convert.ToInt32(lira.Substring(i + 1, 1))];
grupDegeri += birler[Convert.ToInt32(lira.Substring(i + 2, 1))];
if (grupDegeri != "")
grupDegeri += binler[i / 3];
if (grupDegeri == "BirBin")
grupDegeri = "Bin";
yazi += grupDegeri;
}
if (yazi != "")
yazi += " TL ";
int yaziUzunlugu = yazi.Length;
if (kurus.Substring(0, 1) != "0")
yazi += onlar[Convert.ToInt32(kurus.Substring(0, 1))];
if (kurus.Substring(1, 1) != "0")
yazi += birler[Convert.ToInt32(kurus.Substring(1, 1))];
if (yazi.Length > yaziUzunlugu)
yazi += " Kr.";
else
yazi += "Sıfır Kr.";
return yazi;
}