Мой код преобразует только полные числа в пределах (1-9999). Мне нужно преобразовать все числа, и если число (например, 2564866258) содержит центы (например, 1928.25), которые должны быть преобразованы в слова. Ниже мой код. Может ли кто-нибудь помочь мне решить эту проблему.преобразование всех чисел, включая центы, в слово
private void amt_txt_KeyUp(object sender, KeyEventArgs e)
{
string[] Ones = { "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Ninteen" };
string[] Tens = { "Ten", "Twenty", "Thirty", "Fourty", "Fift", "Sixty", "Seventy", "Eighty", "Ninty" };
int no = int.Parse(amt_txt.Text);
string strWords = "";
if (no > 999 && no < 10000)
{
int i = no/1000;
strWords = strWords + Ones[i - 1] + " Thousand ";
no = no % 1000;
}
if (no > 99 && no < 1000)
{
int i = no/100;
strWords = strWords + Ones[i - 1] + " Hundred ";
no = no % 100;
}
if (no > 19 && no < 100)
{
int i = no/10;
strWords = strWords + Tens[i - 1] + " ";
no = no % 10;
}
if (no > 0 && no < 20)
{
strWords = strWords + Ones[no - 1];
}
cnv_txt.Text = strWords;
}
и ваша проблема ...? –
@MarcB Code работает. Мне нужен этот код для преобразования большого количества. Его единственное преобразование до 9999. и не может преобразовать, если число содержит точку (например: 125.50) –
Я не вижу проблемы с большими числами, вам просто нужно поставить больше условий. и для десятичной части вы можете добавить условие «положить» и «в свою строку –