C# 数字转大写汉字
1.数字转换成汉字大写
public string NumToChinese(string x)
{
//数字转换为中文后的数组
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[n]))
P_str_returnValue += P_array_num[n];
}
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[n];
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函数
//将金额数字转换为大写汉字的函数 function convertCurrency(money) { //汉字的数字 var cnNums = new Array('零', '壹', '贰', '叁 ...
- Java实现将数字转为大写汉字
public class Int2Big { static String int2big(int src) { final String num[] = {"零", "壹 ...
- JS将数字转换为大写汉字人民币
<script language="jscript"> function convertCurrency(currencyDigits) { // Constants: ...
- C# 数字转换成汉字大写 数值转换成汉字大写
1.数字转换成汉字大写 public string NumToChinese(string x) { //数字转换为中文后的数组 //转载请注明来自 http://www.shang11.com st ...
- 【JS】数字转大写中文
原文参考 逛到一道面试题,数字转大写中文的,搜索学习并记录于此. //自动转换数字金额为大小写中文字符,返回大小写中文字符串,最大处理到999兆 function changeMoneyToChine ...
- EXCEL表格单元格中包含数字英文和汉字,如何自动去掉汉字,保留英文和数字
EXCEL表格单元格中包含数字英文和汉字,如何自动去掉汉字,保留英文和数字 Function 求数字和字母(对象 As String) '在文本与数字混杂中提取数字和字母 Dim myReg ...
- asp.net 日期转换为大写汉字
//年份转换为大写汉字 public static string numtoUpper(int num) { return "零壹贰叁肆伍陆柒捌玖"[num].ToString() ...
- PHP数字转大写
最近在研究算法,发现了一个数字转大写的算法挺有意思,分享给大家看看: function get_amount($num){ $c1 = "零壹贰叁肆伍陆柒捌玖"; ...
- 数字转化为汉字,如5->五
//数字转化为汉字 如5-->五-(NSString*)translation:(NSString *)arebic{ NSString *str = arebic; NSArray ...
- 工具类_java 数字转化为汉字大写
public class Num2Rmb { private String[] hanArr = { "零", "壹", "贰", &quo ...
随机推荐
- 【笔面试真题】Flow++赋乐科技-面试-2022年1月25日
一.概括 涉及JVM的GC.三色标记 并发部分的锁 Java集合中的hashmap.list kafka中ISR相关 硬件相关-有无DMA 自定义类(代码) 缺陷:锁.list 二.JVM相关内容 1 ...
- pycharm 2021.2.1专业版破解
1.网址:https://gitee.com/pengzhile/ide-eval-resetter 2.点击下载.下载后直接丢进pycharm中. 3.勾选.重启 .查看
- 利用云服务提供商的免费证书,在服务器上发布https前端应用和WebAPI的应用
我们如果要在服务器上发布https前端应用和WebAPI的应用,那么我们就需要用到https证书了.我们一般发布的应用的云服务器上,都会提供一定量的相关的免费证书(一般为20个)供我们使用,每个一年期 ...
- kestrel网络编程--开发Fiddler
1 文章目的 本文讲解基于kestrel开发类似Fiddler应用的过程,让读者了解kestrel网络编程里面的kestrel中间件和http应用中间件.由于最终目的不是输出完整功能的产品,所以这里只 ...
- SQLMap入门——获取数据库中的表名
查询完数据库后,查询指定数据库中所有的表名 python sqlmap.py -u http://localhost/sqli-labs-master/Less-1/?id=1 -D xssplatf ...
- python画社交网络图
安装依赖包 pip3 install networkx 在图书馆的检索系统中,关于图书的信息里面有一个是图书相关借阅关系图.跟这个社交网络图是一样的,反映了不同对象间的关联性.利用python画社交网 ...
- 基于MongoDb的事件订阅实现hook监听
详情请参考原文:-- 基于MongoDb的事件订阅实现hook监听(insert,update,remove,find等事件开始,事件成功等)
- C#开发的线程池和管理器 - 开源研究系列文章
上次编写了一个小软件,用于练手及自己的一个小工具集合.今天把其中的线程池和管理器的代码抽取出来,写成一个博文,让需要的朋友能够进行学习和应用. 这个线程管理器包括了3个类库和一个应用程序,见下图: 第 ...
- [OpenCV实战]25 使用OpenCV进行泊松克隆
目录 1 Seamless Cloning实现 1.1 Seamless Cloning实例 1.2 正常克隆(NORMAL_CLONE)与混合克隆(MIXED_CLONE) 1.2.1 Normal ...
- Matplotlib学习笔记1 - 上手制作一些图表吧!
Matplotlib学习笔记1 - 上手制作一些图表吧! Matplotlib是一个面向Python的,专注于数据可视化的模块. 快速上手 这是使用频率最高的几个模块,在接下来的程序中,都需要把它们作 ...