知识大全 C#中数字金额转换大写金额方法
Posted 数字
篇首语:一身转战三千里,一剑曾当百万师。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#中数字金额转换大写金额方法相关的知识,希望对你有一定的参考价值。
C#中数字金额转换大写金额方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
代码的主调函数为ConvertSum 它的参数是string类型的数字字符串 在ASP NET中调用方式如下:Label Text=ConvertSum( 数字字符串 );
其代码如下 /// 转换数字金额主函数(包括小数) /// /// 数字字符串 /// 转换成中文大写后的字符串或者出错信息提示字符串 public string ConvertSum(string str) if(!IsPositveDecimal(str)) return 输入的不是正数字! ; if(Double Parse(str)> ) return 数字太大 无法换算 请输入一万亿元以下的金额 ; char[] ch=new char[ ]; ch[ ]= ; //小数点 string[] splitstr=null; //定义按小数点分割后的字符串数组 splitstr=str Split(ch[ ]);//按小数点分割字符串 if(splitstr Length== ) //只有整数部分 return ConvertData(str)+ 圆整 ; else //有小数部分 string rstr; rstr=ConvertData(splitstr[ ])+ 圆 ;//转换整数部分 rstr+=ConvertXiaoShu(splitstr[ ]);//转换小数部分 return rstr;
/// /// 判断是否是正数字字符串 /// /// 判断字符串 /// 如果是数字 返回true 否则返回false public bool IsPositveDecimal(string str) Decimal d; try d=Decimal Parse(str); catch(Exception) return false; if(d> ) return true; else return false;
/// /// 转换数字(整数) /// /// 需要转换的整数数字字符串 /// 转换成中文大写后的字符串 public string ConvertData(string str) string tmpstr= ; string rstr= ; int strlen=str Length; if (strlen<= )//数字长度小于四位 rstr= ConvertDigit(str);
else if (strlen<= )//数字长度大于四位 小于八位 tmpstr=str Substring(strlen );//先截取最后四位数字 rstr=ConvertDigit(tmpstr);//转换最后四位数字 tmpstr=str Substring( strlen );//截取其余数字 //将两次转换的数字加上万后相连接 rstr= String Concat(ConvertDigit(tmpstr)+ 万 rstr); rstr=rstr Replace( 零零 零 ); else if(strlen<= )//数字长度大于八位 小于十二位 tmpstr=str Substring(strlen );//先截取最后四位数字 rstr=ConvertDigit(tmpstr);//转换最后四位数字 tmpstr=str Substring(strlen );//再截取四位数字 rstr= String Concat(ConvertDigit(tmpstr)+ 万 rstr); tmpstr=str Substring( strlen ); rstr= String Concat(ConvertDigit(tmpstr)+ 亿 rstr); rstr=rstr Replace( 零亿 亿 ); rstr=rstr Replace( 零万 零 ); rstr=rstr Replace( 零零 零 ); rstr=rstr Replace( 零零 零 ); strlen=rstr Length; if (strlen>= ) switch(rstr Substring(strlen )) case 佰零 :rstr=rstr Substring( strlen )+ 佰 ; break; case 仟零 :rstr=rstr Substring( strlen )+ 仟 ; break; case 万零 :rstr=rstr Substring( strlen )+ 万 ;break; case 亿零 :rstr=rstr Substring( strlen )+ 亿 ;break; return rstr;
/// /// 转换数字(小数部分) /// /// 需要转换的小数部分数字字符串 /// 转换成中文大写后的字符串 public string ConvertXiaoShu(string str) int strlen=str Length ; string rstr; if(strlen== ) rstr=ConvertChinese(str)+ 角 ; return rstr; else string tmpstr=str Substring( ); rstr=ConvertChinese(tmpstr)+ 角 ; tmpstr=str Substring( ); rstr+=ConvertChinese(tmpstr)+ 分 ; rstr=rstr Replace( 零分 ); rstr=rstr Replace( 零角 ); return rstr;
/// /// 转换数字 /// /// 转换的字符串(四位以内) /// public string ConvertDigit(string str) int strlen=str Length; string rstr= ; switch (strlen) case : rstr=ConvertChinese(str);break; case : rstr=Convert Digit(str);break; case : rstr=Convert Digit(str);break; case : rstr=Convert Digit(str);break; rstr=rstr Replace( 拾零 拾 ); strlen=rstr Length; return rstr;
/// /// 转换四位数字 /// public string Convert Digit(string str) string str =str Substring( ); string str =str Substring( ); string str =str Substring( ); string str =str Substring( ); string rstring= ; rstring+=ConvertChinese(str )+ 仟 ; rstring+=ConvertChinese(str )+ 佰 ; rstring+=ConvertChinese(str )+ 拾 ; rstring+=ConvertChinese(str ); rstring=rstring Replace( 零仟 零 ); rstring=rstring Replace( 零佰 零 ); rstring=rstring Replace( 零拾 零 ); rstring=rstring Replace( 零零 零 ); rstring=rstring Replace( 零零 零 ); rstring=rstring Replace( 零零 零 ); return rstring;
/// /// 转换三位数字 /// public string Convert Digit(string str) string str =str Substring( ); string str =str Substring( ); string str =str Substring( ); string rstring= ; rstring+=ConvertChinese(str )+ 佰 ; rstring+=ConvertChinese(str )+ 拾 ; rstring+=ConvertChinese(str ); rstring=rstring Replace( 零佰 零 ); rstring=rstring Replace( 零拾 零 ); rstring=rstring Replace( 零零 零 ); rstring=rstring Replace( 零零 零 ); return rstring;
/// /// 转换二位数字 /// public string Convert Digit(string str) string str =str Substring( ); string str =str Substring( ); string rstring= ; rstring+=ConvertChinese(str )+ 拾 ; rstring+=ConvertChinese(str ); rstring=rstring Replace( 零拾 零 ); rstring=rstring Replace( 零零 零 ); return rstring;
/// /// 将一位数字转换成中文大写数字 /// public string ConvertChinese(string str) // 零壹贰三肆伍陆柒捌玖拾佰仟万亿圆整角分 string cstr= ; switch(str) case : cstr= 零 ;break; case : cstr= 壹 ;break; case : cstr= 贰 ;break; case : cstr= 三 ;break; case : cstr= 肆 ;break; case : cstr= 伍 ;break; case : cstr= 陆 ;break; case : cstr= 柒 ;break; case : cstr= 捌 ;break; case : cstr= 玖 ;break; return(cstr);
cha138/Article/program/net/201311/13431相关参考