C# 数字转换成汉字大写 数值转换成汉字大写
1.数字转换成汉字大写
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 = ; //字符位置指针
int P_int_m = x.Length % ; //取模
int P_int_k = ;
if (P_int_m > )
P_int_k = x.Length / + ;
else
P_int_k = x.Length / ;
//外层循环,四位一组,每组最后加上单位: ",万亿,",",亿,",",万,"
for (int i = P_int_k; i > ; i--)
{
int P_int_L = ;
if (i == P_int_k && P_int_m != )
P_int_L = P_int_m;
//得到一组四位数
string four = x.Substring(finger, P_int_L);
int P_int_l = four.Length;
//内层循环在该组中的每一位数上循环
for (int j = ; j < P_int_l; j++)
{
//处理组中的每一位数加上所在的位
int n = Convert.ToInt32(four.Substring(j, ));
if (n == )
{
if (j < P_int_l - && Convert.ToInt32(four.Substring(j + , )) > && !P_str_returnValue.EndsWith(P_array_num[n]))
P_str_returnValue += P_array_num[n];
}
else
{
if (!(n == && (P_str_returnValue.EndsWith(P_array_num[]) | P_str_returnValue.Length == ) && j == P_int_l - ))
P_str_returnValue += P_array_num[n];
P_str_returnValue += P_array_digit[P_int_l - j - ];
}
}
finger += P_int_L;
//每组最后加上一个单位:",万,",",亿," 等
if (i < P_int_k) //如果不是最高位的一组
{
if (Convert.ToInt32(four) != )
//如果所有4位不全是0则加上单位",万,",",亿,"等
P_str_returnValue += P_array_units[i - ];
}
else
{
//处理最高位的一组,最后必须加上单位
P_str_returnValue += P_array_units[i - ];
}
}
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 :
strArray = new string[] { str3[].ToString(), "y", str3[].ToString(), "j", str3[].ToString(), "f" };
str = string.Concat(strArray);
break; case :
strArray = new string[] { str3[].ToString(), "s", str3[].ToString(), "y", str3[].ToString(), "j", str3[].ToString(), "f" };
str = string.Concat(strArray);
break; case :
strArray = new string[] { str3[].ToString(), "b", str3[].ToString(), "s", str3[].ToString(), "y", str3[].ToString(), "j", str3[].ToString(), "f" };
str = string.Concat(strArray);
break; case :
strArray = new string[] { str3[].ToString(), "q", str3[].ToString(), "b", str3[].ToString(), "s", str3[].ToString(), "y", str3[].ToString(), "j", str3[].ToString(), "f" };
str = string.Concat(strArray);
break; case :
strArray = new string[] { str3[].ToString(), "w", str3[].ToString(), "q", str3[].ToString(), "b", str3[].ToString(), "s", str3[].ToString(), "y", str3[].ToString(), "j", str3[].ToString(), "f" };
str = string.Concat(strArray);
break; case :
strArray = new string[] { str3[].ToString(), "s", str3[].ToString(), "w", str3[].ToString(), "q", str3[].ToString(), "b", str3[].ToString(), "s", str3[].ToString(), "y", str3[].ToString(), "j", str3[].ToString(), "f" };
str = string.Concat(strArray);
break; case :
strArray = new string[] {
str3[].ToString(), "b", str3[].ToString(), "s", str3[].ToString(), "w", str3[].ToString(), "q", str3[].ToString(), "b", str3[].ToString(), "s", str3[].ToString(), "y", str3[].ToString(), "j",
str3[].ToString(), "f"
};
str = string.Concat(strArray);
break; case :
strArray = new string[] {
str3[].ToString(), "q", str3[].ToString(), "b", str3[].ToString(), "s", str3[].ToString(), "w", str3[].ToString(), "q", str3[].ToString(), "b", str3[].ToString(), "s", str3[].ToString(), "y",
str3[].ToString(), "j", str3[].ToString(), "f"
};
str = string.Concat(strArray);
break; case :
strArray = new string[] {
str3[].ToString(), "m", str3[].ToString(), "q", str3[].ToString(), "b", str3[].ToString(), "s", str3[].ToString(), "w", str3[].ToString(), "q", str3[].ToString(), "b", str3[].ToString(), "s",
str3[].ToString(), "y", str3[].ToString(), "j", str3[].ToString(), "f"
};
str = string.Concat(strArray);
break;
}
for (int i = ; i < str.Trim().Length; i++)
{
switch (str[i])
{
case '':
str2 = str2 + "零";
break; case '':
str2 = str2 + "壹";
break; case '':
str2 = str2 + "贰";
break; case '':
str2 = str2 + "叁";
break; case '':
str2 = str2 + "肆";
break; case '':
str2 = str2 + "伍";
break; case '':
str2 = str2 + "陆";
break; case '':
str2 = str2 + "柒";
break; case '':
str2 = str2 + "捌";
break; case '':
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# 数字转换成汉字大写 数值转换成汉字大写的更多相关文章
- HDOJ/HDU 1161 Eddy's mistakes(大写字母转换成小写字母)
Problem Description Eddy usually writes articles ,but he likes mixing the English letter uses, for e ...
- C#字母转换成数字/数字转换成字母 - ASCII码转换
字母转换成数字 byte[] array = new byte[1]; //定义一组数组arrayarray = System.Text.Encoding.ASCII.GetBytes(strin ...
- js区分字符串和数字,有时候需要将字符串转换成数字
js区分字符串和数字,有时候需要将字符串转换成数字 :parseInt
- shell中把大写字母转换成小写字母
shell中把大写字母转换成小写字母 参考:http://www.jb51.net/article/40257.htm echo "AABBCC" | tr "[:upp ...
- python 练习题:将列表中的大写字母转换成小写
将列表中的大写字母转换成小写如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,L1 = ['Hello', 'World', 18, 'Apple', None]请修改列 ...
- 将文件大小数值转换成B、KB、MB、GB
//delphi 将文件大小数值转换成B/KB/MB/GB function FormatByteSize(const bytes: Longint): string; const B = 1; // ...
- ABAP 数值转换大写
转自:http://www.dasunny.com/wordpress/sapnotes/2015113091.htmlSAP标准的数值转换函数 SPELL_AMOUNT, 仅对整数部分进行了处理,小 ...
- Javascript数值转换(string,int,json)
数值: 在JavaScript中,数值转换一般有三种方式: 一.Number(param)函数:param可以用于任何数据类型 1.1 param是Boolean值,true和false分别转换为1和 ...
- javascript的数值转换
在javascript中数值转换,最要的一点是函数第一个字母必须要大写.js中的函数有string字符型.number数值型.null空型.boolean布尔型.undefined未定义. 具体的转换 ...
随机推荐
- 黑暗之光 Day3
1. 滚动窗口 Scroll View. GameObject itemGo = NGUITools.AddChild(grid.gameObject, skillItemPrefab); grid. ...
- Linux 登陆提示文字
/etc/issue是从本地登陆显示的信息 /etc/issue.net是从网络登陆显示的信息 /etc/motd内容由系统管理员确定,常用于通告信息,如计划关机时间的警告等 每次用户登录时,/etc ...
- 30-Transformation(HDU4578)-区间线段树(复杂)
http://acm.hdu.edu.cn/showproblem.php?pid=4578 Transformation Time Limit: 15000/8000 MS (Java/Others ...
- p2598 [ZJOI2009]狼和羊的故事
传送门 分析 起点向狼连边,羊向终点连边,边权均为inf 每个点向它四联通的点连边权萎1的边 跑最小割即可 代码 #include<iostream> #include<cstdio ...
- code1091 传染病控制
1.读入图,边是双向的 2.递归建树,同时确定每一层的节点 3.dfs按层搜索,先把这一层所有被传染的(die[pa[k]]=true的)的die置为true 然后循环,每次把一个die为true的变 ...
- 常用的 Python 调试工具,Python开发必读-乾颐堂
以下是我做调试或分析时用过的工具的一个概览.如果你知道有更好的工具,请在评论中留言,可以不用很完整的介绍. 日志 没错,就是日志.再多强调在你的应用里保留足量的日志的重要性也不为过.你应当对重要的内容 ...
- sed命令n,N,d,D,p,P,h,H,g,G,x解析2
摘自: https://blog.csdn.net/xiexingshishu/article/details/50514132 sed命令n,N,d,D,p,P,h,H,g,G,x解析 2016年0 ...
- ACM暑假培训宣讲稿
(鞠躬)感谢大家的掌声! 我上台来作这次的宣讲,首先要感谢大家的捧场(当然,这是一句玩笑话),其实吧,我要感谢一下我们ACM班老大(班长),hjh队友,是他指派我来的,给了我这个宝贵的机会.最要感谢的 ...
- mybatis :xml文件中传入参数和if标签结合使用时要点
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.Reflecti ...
- PCA 原理
PCA的数学原理(转) 1 年前 PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取 ...