Tôi có ứng dụng cửa sổ mà tôi cần chuyển đổi số tiền đã nhập trong hộp văn bản thành các từ ở dạng ruppes và paise. ví dụ: Số tiền của tôi là 2356.54
thì số tiền đó sẽ hiển thị two thousand three hundred fifty six ruppes and fifty four paise only
tuy nhiên, tôi có mã chuyển đổi thành chữ nhưng tôi không thể hiển thị paise
.i đang bao gồm mã của mình cho mục đích tham khảo.chuyển đổi số tiền thành rupee và paise theo định dạng từ trong C#
private void btntowords_Click(object sender, EventArgs e)
{
MessageBox.Show(words(Convert.ToInt32(textBox1.Text)));
}
public string words(int numbers)
{
int number = numbers;
if (number == 0) return "Zero";
if (number == -2147483648) return "Minus Two Hundred and Fourteen Crore Seventy Four Lakh Eighty Three Thousand Six Hundred and Forty Eight";
int[] num = new int[4];
int first = 0;
int u, h, t;
System.Text.StringBuilder sb = new System.Text.StringBuilder();
if (number < 0)
{
sb.Append("Minus ");
number = -number;
}
string[] words0 = {"" ,"One ", "Two ", "Three ", "Four ",
"Five " ,"Six ", "Seven ", "Eight ", "Nine "};
string[] words1 = {"Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ",
"Fifteen ","Sixteen ","Seventeen ","Eighteen ", "Nineteen "};
string[] words2 = {"Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ",
"Seventy ","Eighty ", "Ninety "};
string[] words3 = { "Thousand ", "Lakh ", "Crore " };
num[0] = number % 1000; // units
num[1] = number/1000;
num[2] = number/100000;
num[1] = num[1] - 100 * num[2]; // thousands
num[3] = number/10000000; // crores
num[2] = num[2] - 100 * num[3]; // lakhs
for (int i = 3; i > 0; i--)
{
if (num[i] != 0)
{
first = i;
break;
}
}
for (int i = first; i >= 0; i--)
{
if (num[i] == 0) continue;
u = num[i] % 10; // ones
t = num[i]/10;
h = num[i]/100; // hundreds
t = t - 10 * h; // tens
if (h > 0) sb.Append(words0[h] + "Hundred ");
if (u > 0 || t > 0)
{
if (h > 0 || i == 0) sb.Append("and ");
if (t == 0)
sb.Append(words0[u]);
else if (t == 1)
sb.Append(words1[u]);
else
sb.Append(words2[t - 2] + words0[u]);
}
if (i != 0) sb.Append(words3[i - 1]);
}
return sb.ToString().TrimEnd();
}
Nó không nên hiển thị pasie nếu nó có số lượng như thế này 2356.00
vì vậy tôi đã cố gắng bằng nhiều cách để có được paise
nhưng không thành công. tôi đã thử ggogle nhưng không nhận được chính xác những gì tôi muốn.
Thật là một mớ hỗn độn! Đây chỉ là một bãi chứa mã lớn, vô dụng và mã không được định dạng đúng để có thể đọc được! –