知识大全 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

相关参考