首页 > 代码库 > [转] 金额小写变大写

[转] 金额小写变大写

 1         /// <summary>  2         /// 金额小写变大写  3         /// </summary>  4         /// <param name="smallnum"></param>  5         /// <returns></returns>  6         public static string gMoney(decimal smallnum)                                                                                  7         {  8             string cmoney , cnumber, cnum, cnum_end,cmon ,cno,snum ,sno;  9             int snum_len , sint_len, cbegin, zflag , i; 10             if(smallnum > 1000000000000 || smallnum < -99999999999 || smallnum == 0) 11                 return ""; 12             cmoney = "仟佰拾亿仟佰拾万仟佰拾元角分" ;// 大写人民币单位字符串 13             cnumber = "壹贰叁肆伍陆柒捌玖"          ;// 大写数字字符串 14             cnum = ""                               ;// 转换后的大写数字字符串 15             cnum_end = ""                           ;// 转换后的大写数字字符串的最后一位 16             cmon = ""                               ;// 取大写人民币单位字符串中的某一位 17             cno = ""                                ;// 取大写数字字符串中的某一位 18  19  20              21             snum = Round(smallnum,2).ToString("############.00");  ;// 小写数字字符串 22             snum_len = snum.Length                  ;// 小写数字字符串的长度 23             sint_len = snum_len - 2                 ;// 小写数字整数部份字符串的长度 24             sno = ""                                ;// 小写数字字符串中的某个数字字符 25             cbegin = 15 - snum_len                  ;// 大写人民币单位中的汉字位置 26             zflag = 1                               ;// 小写数字字符是否为0(0=0)的判断标志 27             i = 0                                   ;// 小写数字字符串中数字字符的位置 28  29             if(snum_len > 15) 30                 return ""; 31             for(i=0;i<snum_len;i++)  32             { 33                 if (i==sint_len-1) 34                     continue; 35  36                  37                 cmon = cmoney.Substring(cbegin, 1); 38                 cbegin = cbegin + 1; 39                 sno =snum.Substring(i,1); 40                 if (sno=="-") 41                 { 42                     cnum = cnum + ""; 43                     continue; 44                 } 45                 else if(sno=="0") 46                 { 47                     cnum_end = cnum.Substring(cnum.Length-2,1); 48                     if(cbegin == 4 || (cbegin == 8 || cnum_end.IndexOf("亿")>=0|| cbegin == 12 )) 49                     { 50                         cnum = cnum + cmon; 51                         if (cnumber.IndexOf(cnum_end)>=0 ) 52                             zflag = 1; 53                         else 54                             zflag = 0; 55                     } 56                     else 57                     { 58                         zflag = 0; 59                     } 60                     continue; 61                 } 62                 else if( sno != "0" && zflag == 0) 63                 { 64                     cnum = cnum + ""; 65                     zflag = 1; 66                 } 67                 cno =cnumber.Substring(System.Convert.ToInt32(sno)-1, 1); 68                 cnum = cnum + cno + cmon; 69             } 70             if (snum.Substring(snum.Length-2,1)=="0") 71             { 72                 return  cnum + ""; 73             } 74             else 75                 return cnum; 76         }

 

[转] 金额小写变大写