C# 数字转换成汉字大写 数值转换成汉字大写
2017-07-21 16:41
369 查看
1.数字转换成汉字大写
2.数值转换成汉字大写
public string NumToChinese(string x) { //数字转换为中文后的数组 //转载请注明来自 http://www.shang11.com string[] P_array_num = new string[] { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; //为数字位数建立一个位数组 string[] P_array_digit = new string[] { "", "拾", "佰", "仟" }; //为数字单位建立一个单位数组 string[] P_array_units = new string[] { "", "万", "亿", "万亿" }; string P_str_returnValue = ""; //返回值 int finger = 0; //字符位置指针 int P_int_m = x.Length % 4; //取模 int P_int_k = 0; if (P_int_m > 0) P_int_k = x.Length / 4 + 1; else P_int_k = x.Length / 4; //外层循环,四位一组,每组最后加上单位: ",万亿,",",亿,",",万," for (int i = P_int_k; i > 0; i--) { int P_int_L = 4; if (i == P_int_k && P_int_m != 0) P_int_L = P_int_m; //得到一组四位数 string four = x.Substring(finger, P_int_L); int P_int_l = four.Length; //内层循环在该组中的每一位数上循环 for (int j = 0; j < P_int_l; j++) { //处理组中的每一位数加上所在的位 int n = Convert.ToInt32(four.Substring(j, 1)); if (n == 0) { if (j < P_int_l - 1 && Convert.ToInt32(four.Substring(j + 1, 1)) > 0 && !P_str_returnValue.EndsWith(P_array_num )) P_str_returnValue += P_array_num ; } else { if (!(n == 1 && (P_str_returnValue.EndsWith(P_array_num[0]) | P_str_returnValue.Length == 0) && j == P_int_l - 2)) P_str_returnValue += P_array_num ; P_str_returnValue += P_array_digit[P_int_l - j - 1]; } } finger += P_int_L; //每组最后加上一个单位:",万,",",亿," 等 if (i < P_int_k) //如果不是最高位的一组 { if (Convert.ToInt32(four) != 0) //如果所有4位不全是0则加上单位",万,",",亿,"等 P_str_returnValue += P_array_units[i - 1]; } else { //处理最高位的一组,最后必须加上单位 P_str_returnValue += P_array_units[i - 1]; } } return P_str_returnValue; }
2.数值转换成汉字大写
public static string GetChinaMoney(decimal money) { string[] strArray; string str = ""; string str2 = ""; string str3 = money.ToString("0.00"); switch (str3.Trim().Length) { case 4: strArray = new string[] { str3[0].ToString(), "y", str3[2].ToString(), "j", str3[3].ToString(), "f" }; str = string.Concat(strArray); break; case 5: strArray = new string[] { str3[0].ToString(), "s", str3[1].ToString(), "y", str3[3].ToString(), "j", str3[4].ToString(), "f" }; str = string.Concat(strArray); break; case 6: strArray = new string[] { str3[0].ToString(), "b", str3[1].ToString(), "s", str3[2].ToString(), "y", str3[4].ToString(), "j", str3[5].ToString(), "f" }; str = string.Concat(strArray); break; case 7: strArray = new string[] { str3[0].ToString(), "q", str3[1].ToString(), "b", str3[2].ToString(), "s", str3[3].ToString(), "y", str3[5].ToString(), "j", str3[6].ToString(), "f" }; str = string.Concat(strArray); break; case 8: strArray = new string[] { str3[0].ToString(), "w", str3[1].ToString(), "q", str3[2].ToString(), "b", str3[3].ToString(), "s", str3[4].ToString(), "y", str3[6].ToString(), "j", str3[7].ToString(), "f" }; str = string.Concat(strArray); break; case 9: strArray = new string[] { str3[0].ToString(), "s", str3[1].ToString(), "w", str3[2].ToString(), "q", str3[3].ToString(), "b", str3[4].ToString(), "s", str3[5].ToString(), "y", str3[7].ToString(), "j", str3[8].ToString(), "f" }; str = string.Concat(strArray); break; case 10: strArray = new string[] { str3[0].ToString(), "b", str3[1].ToString(), "s", str3[2].ToString(), "w", str3[3].ToString(), "q", str3[4].ToString(), "b", str3[5].ToString(), "s", str3[6].ToString(), "y", str3[8].ToString(), "j", str3[9].ToString(), "f" }; str = string.Concat(strArray); break; case 11: strArray = new string[] { str3[0].ToString(), "q", str3[1].ToString(), "b", str3[2].ToString(), "s", str3[3].ToString(), "w", str3[4].ToString(), "q", str3[5].ToString(), "b", str3[6].ToString(), "s", str3[7].ToString(), "y", str3[9].ToString(), "j", str3[10].ToString(), "f" }; str = string.Concat(strArray); break; case 12: strArray = new string[] { str3[0].ToString(), "m", str3[1].ToString(), "q", str3[2].ToString(), "b", str3[3].ToString(), "s", str3[4].ToString(), "w", str3[5].ToString(), "q", str3[6].ToString(), "b", str3[7].ToString(), "s", str3[8].ToString(), "y", str3[10].ToString(), "j", str3[11].ToString(), "f" }; str = string.Concat(strArray); break; } for (int i = 0; i < str.Trim().Length; i++) { switch (str[i]) { case '0': str2 = str2 + "零"; break; case '1': str2 = str2 + "壹"; break; case '2': str2 = str2 + "贰"; break; case '3': str2 = str2 + "叁"; break; case '4': str2 = str2 + "肆"; break; case '5': str2 = str2 + "伍"; break; case '6': str2 = str2 + "陆"; break; case '7': str2 = str2 + "柒"; break; case '8': str2 = str2 + "捌"; break; case '9': str2 = str2 + "玖"; break; case 'b': str2 = str2 + "佰"; break; case 'f': str2 = str2 + "分"; break; case 'j': str2 = str2 + "角"; break; case 'm': str2 = str2 + "亿"; break; case 'q': str2 = str2 + "仟"; break; case 's': str2 = str2 + "拾"; break; case 'w': str2 = str2 + "万"; break; case 'y': str2 = str2 + "元"; break; } } return str2; }
相关文章推荐
- 数字转换为大写汉字表示(C#和JS函数)
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- C#数字转换成大写汉字程序
- 一个将阿拉伯数字转换成中文大写的好算法【原创】(C#)
- JS实现将数字金额转换为大写人民币汉字的方法
- 数字转换成汉字大写
- C#实现阿拉伯数字到大写中文的转换
- C#通用类库--数字转为人民币汉字大写表示
- C#写的将阿拉伯数字转换成中文大写金额代码
- C#转换汉字大写函数
- 使用C#实现阿拉伯数字到大写中文的转换-第二种方法
- 金额转换,阿拉伯数字的金额转换成中国传统大写汉字的形式
- 用C# 重写数字日期转换为汉字日期并具有分割功能函数类
- 利用创建型工厂方法模式编写小写数字金额转换为人民币大写C#代码。
- C# 人民币大小写转换,将阿拉伯数字转换为中文的大写人民币
- C#通用类库--数字转为人民币汉字大写表示
- 将整型数字转换为大写汉字的自定义函数,如转换为'壹贰
- 数字转换成大写金额(C#实现)
- 将Android String中的大写汉字数字转换为int或long型数字
- C#把数字转换为大写金额