C# .NET 数字转换为中文大写方法
时间:2021-06-25 16:33:25
收藏:0
阅读:0
数字转换为中文大写方法
例如:
int num = 725;
string result=MoneyToCharacter(num);
result输出结果为“柒佰叁拾伍元整”
1 private string MoneyToCharacter(decimal Money) 2 { 3 string temp = ""; 4 string resu = ""; 5 string jf = ""; 6 int j = 0; 7 int j_1 = 0; 8 int jiao = 0; 9 int fen = 0; 10 int len = 0; 11 List<string> Num = new List<string>(); 12 List<string> A = new List<string>(); 13 Num.Add("零"); 14 Num.Add("壹"); 15 Num.Add("贰"); 16 Num.Add("叁"); 17 Num.Add("肆"); 18 Num.Add("伍"); 19 Num.Add("陆"); 20 Num.Add("柒"); 21 Num.Add("捌"); 22 Num.Add("玖"); 23 A.Add("分"); 24 A.Add("角"); 25 A.Add("元"); 26 A.Add("拾"); 27 A.Add("佰"); 28 A.Add("仟"); 29 A.Add("萬"); 30 A.Add("拾"); 31 A.Add("佰"); 32 A.Add("仟"); 33 A.Add("億"); 34 A.Add("拾"); 35 A.Add("佰"); 36 A.Add("仟"); 37 temp = ((Math.Truncate(Math.Round(Money * 100))).ToString()).Trim(); 38 len = temp.Length; 39 resu = ""; 40 if (len > 13 || len == 0) 41 return ""; 42 jiao = Convert.ToInt32(temp.Substring(len - 2, 1)); 43 fen = Convert.ToInt32(temp.Substring(len - 1, 1)); 44 if (fen == 0) 45 { 46 if (jiao == 0) 47 jf = "整"; 48 else 49 jf = Num[jiao] + "角整"; 50 } 51 else 52 { 53 if (jiao == 0) 54 jf = "零" + Num[fen] + "分"; 55 else 56 jf = Num[jiao] + "角" + Num[fen] + "分"; 57 } 58 for (int i = 0; i < len - 2; i++) 59 { 60 j = Convert.ToInt32(temp.Substring(i, 1));//取第一位数字 61 if (j == 0) 62 { 63 j_1 = Convert.ToInt32(temp.Substring(i + 1, 1));//取第二位数字 64 if (j_1 == 0) 65 continue; 66 if (A[len - i - 1] == "萬" || A[len - i - 1] == "億") 67 resu = resu + A[len - i - 1] + Num[j]; 68 else 69 { 70 if (A[len - i - 1] == "元") 71 resu = resu + "元"; 72 else 73 resu = resu + Num[j]; 74 } 75 } 76 else 77 resu = resu + Num[j] + A[len - i - 1]; 78 } 79 return resu + jf; 80 }
转载请注明出处,谢谢!
评论(0)