Örnek 43221 = KIRK ÜÇ BİN ÜÇ YÜZ YİRMİ BİR
private static string ConvertNumberToTurkishText(double number)
{
string[,] turkishNumberTexts = new string[3, 10]
{
{"", "BİR", "İKİ", "ÜÇ", "DÖRT", "BEŞ", "ALTI", "YEDİ", "SEKİZ", "DOKUZ"},
{"", "ON", "YİRMİ", "OTUZ", "KIRK", "ELLİ", "ALTMIŞ", "YETMİŞ", "SEKSEN", "DOKSAN"},
{"", "YÜZ", "İKİYÜZ", "ÜÇYÜZ", "DÖRTYÜZ", "BEŞYÜZ", "ALTIYÜZ", "YEDİYÜZ", "SEKİZYÜZ", "DOKUZYÜZ"}
};
string result = "";
if (number == 0.0)
{
return "";
}
string numberText = number.ToString();
int digitsCount = numberText.Length;
if (digitsCount % 3 != 0)
{
int numberOfZeroesToAdd = 3 - (digitsCount % 3);
numberText = new string('0', numberOfZeroesToAdd) + numberText;
digitsCount += numberOfZeroesToAdd;
}
int blockCount = digitsCount / 3;
int blockIndex = blockCount - 1;
while (blockIndex >= 0)
{
string blockText = "";
int digitIndex = (blockCount - blockIndex - 1) * 3;
for (int i = 0; i < 3; i++)
{
int digit = int.Parse(numberText[digitIndex + i].ToString());
if (digit == 0)
{
continue;
}
blockText += turkishNumberTexts[2, i == 0 ? digit : 0];
blockText += (digit > 1 ? turkishNumberTexts[1, digit] : "");
blockText += (i == 2 ? "" : " ");
}
if (!string.IsNullOrEmpty(blockText))
{
switch (blockIndex)
{
case 0:
result += blockText;
break;
case 1:
result += (numberText.Substring(0, 3) == "001" ? "" : blockText + "BİN ");
break;
default:
result += (blockText + (blockText.EndsWith("YÜZ") ? "" : " ") + GetMultiplierText(blockIndex) + " ");
break;
}
}
blockIndex--;
}
return result.TrimEnd();
}
private static string GetMultiplierText(int multiplierIndex)
{
string[] multipliers = { "MİLYON", "MİLYAR", "TRİLYON" };
return multipliers[multiplierIndex - 2];
}


