代码的主调C#函数ConvertSum,它的参数是string类型的数字字符串。在ASP.NET中调用方式如下:
Label1.Text=ConvertSum("数字字符串");
C#函数ConvertSum代码如下:
- publicstringConvertSum(stringstr)
- {
- if(!IsPositveDecimal(str))
- return"输入的不是正数字!";
- if(Double.Parse(str)>999999999999.99)
- return"数字太大,无法换算,请输入一万亿元以下的金额";
- char[]ch=newchar[1];
- ch[0]='.';//小数点
- string[]splitstr=null;//定义按小数点分割后的字符串数组
- splitstr=str.Split(ch[0]);//按小数点分割字符串
- if(splitstr.Length==1)//只有整数部分
- returnConvertData(str)+"圆整";
- else//有小数部分
- {
- stringrstr;
- rstr=ConvertData(splitstr[0])+"圆";//转换整数部分
- rstr+=ConvertXiaoShu(splitstr[1]);//转换小数部分
- returnrstr;
- }
- }
- ///
- ///判断是否是正数字字符串
- ///
- ///判断字符串
- ///如果是数字,返回true,否则返回false
- publicboolIsPositveDecimal(stringstr)
- {
- Decimald;
- try
- {
- d=Decimal.Parse(str);
- }
- catch(Exception)
- {
- returnfalse;
- }
- if(d>0)
- returntrue;
- else
- returnfalse;
- }
- ///
- ///转换数字(整数)
- ///
- ///需要转换的整数数字字符串
- ///转换成中文大写后的字符串
- publicstringConvertData(stringstr)
- {
- stringtmpstr="";
- stringrstr="";
- intstrlen=str.Length;
- if(strlen<=4)//数字长度小于四位
- {
- rstr=ConvertDigit(str);
- }
- else
- {
- if(strlen<=8)//数字长度大于四位,小于八位
- {
- tmpstr=str.Substring(strlen-4,4);//先截取***四位数字
- rstr=ConvertDigit(tmpstr);//转换***四位数字
- tmpstr=str.Substring(0,strlen-4);//截取其余数字
- //将两次转换的数字加上万后相连接
- rstr=String.Concat(ConvertDigit(tmpstr)+"万",rstr);
- rstrrstr=rstr.Replace("零零","零");
- }
- else
- if(strlen<=12)//数字长度大于八位,小于十二位
- {
- tmpstr=str.Substring(strlen-4,4);//先截取***四位数字
- rstr=ConvertDigit(tmpstr);//转换***四位数字
- tmpstr=str.Substring(strlen-8,4);//再截取四位数字
- rstr=String.Concat(ConvertDigit(tmpstr)+"万",rstr);
- tmpstr=str.Substring(0,strlen-8);
- rstr=String.Concat(ConvertDigit(tmpstr)+"亿",rstr);
- rstrrstr=rstr.Replace("零亿","亿");
- rstrrstr=rstr.Replace("零万","零");
- rstrrstr=rstr.Replace("零零","零");
- rstrrstr=rstr.Replace("零零","零");
- }
- }
- strlen=rstr.Length;
- if(strlen>=2)
- {
- switch(rstr.Substring(strlen-2,2))
- {
- case"佰零":rstr=rstr.Substring(0,strlen-2)+"佰";break;
- case"仟零":rstr=rstr.Substring(0,strlen-2)+"仟";break;
- case"万零":rstr=rstr.Substring(0,strlen-2)+"万";break;
- case"亿零":rstr=rstr.Substring(0,strlen-2)+"亿";break;
- }
- }
- returnrstr;
- }
以上介绍C#函数ConvertSum。
【编辑推荐】