码迷,mamicode.com
首页 > 其他好文 > 详细

[转] 金额小写变大写

时间:2014-11-14 17:34:24      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   ar   os   sp   for   div   on   

 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         }

 

[转] 金额小写变大写

标签:style   blog   color   ar   os   sp   for   div   on   

原文地址:http://www.cnblogs.com/XingchenStudio/p/4097510.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!