码迷,mamicode.com
首页 > Windows程序 > 详细

C# 数字转换成大写

时间:2017-07-27 20:23:20      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:sum   turn   returns   getc   insert   价格   param   i++   public   

 1 /// <summary>
 2         /// 数字转大写
 3         /// </summary>
 4         /// <param name="type">单价/数量</param>
 5         /// <param name="Num">数字</param>
 6         /// <returns></returns>
 7         public static string GetChineseNum(string type,string Num)
 8         {
 9             #region
10             try
11             {
12                 string m_1, m_2, m_3, m_4, m_5, m_6, m_7, m_8, m_9;
13                 m_1 = Num;
14                 string numNum = "0123456789.";
15                 string numChina = "零壹贰叁肆伍陆柒捌玖点";
16                 string numChinaWeigh = "个拾佰仟万拾佰仟亿拾佰仟万";
17                 if (Num.Substring(0, 1) == "0")//0123-->123
18                     Num = Num.Substring(1, Num.Length-1);
19                 if (!Num.Contains(.))
20                     Num += ".00";
21                 else//123.234  123.23 123.2
22                     Num = Num.Substring(0, Num.IndexOf(.) + 1 + (Num.Split(.)[1].Length > 2 ? 3 : Num.Split(.)[1].Length));
23                 m_1 = Num;
24                 m_2 = m_1;
25                 m_3 = m_4 = "";
26                 //m_2:1234-> 壹贰叁肆
27                 for (int i = 0; i < 11; i++)
28                 {
29                     m_2 = m_2.Replace(numNum.Substring(i, 1), numChina.Substring(i, 1));
30                 }
31                 //m_3:佰拾万仟佰拾个
32                 int iLen = m_1.Length;
33                 if (m_1.IndexOf(.) > 0)
34                     iLen = m_1.IndexOf(.);//获取整数位数
35                 for (int j = iLen; j >= 1; j--)
36                     m_3 += numChinaWeigh.Substring(j - 1, 1);
37                 //m_4:2行+3行
38                 for (int i = 0; i < m_3.Length; i++)
39                     m_4 += m_2.Substring(i, 1) + m_3.Substring(i, 1);
40                 //m_5:4行去"0"后拾佰仟
41                 m_5 = m_4;
42                 m_5 = m_5.Replace("零拾", "");
43                 m_5 = m_5.Replace("零佰", "");
44                 m_5 = m_5.Replace("零仟", "");
45                 //m_6:00-> 0,000-> 0
46                 m_6 = m_5;
47                 for (int i = 0; i < iLen; i++)
48                     m_6 = m_6.Replace("零零", "");
49                 //m_7:6行去亿,万,个位"0"
50                 m_7 = m_6;
51                 m_7 = m_7.Replace("亿零万零", "亿零");
52                 m_7 = m_7.Replace("亿零万", "亿零");
53                 m_7 = m_7.Replace("零亿", "亿");
54                 m_7 = m_7.Replace("零万", "");
55                 if (m_7.Length > 2)
56                     m_7 = m_7.Replace("零个", "");
57                 //m_8:7行+2行小数-> 数目
58                 m_8 = m_7;
59                 m_8 = m_8.Replace("", "");
60                 if (m_2.Substring(m_2.Length - 3, 3) != "点零零")
61                     m_8 += m_2.Substring(m_2.Length - 3, 3);
62                 //m_9:7行+2行小数-> 价格
63                 m_9 = m_7;
64                 m_9 = m_9.Replace("", "");
65                 if (m_2.Substring(m_2.Length - 3, 3) != "点零零")
66                 {
67                     m_9 += m_2.Substring(m_2.Length - 2, 2);
68                     m_9 = m_9.Insert(m_9.Length - 1, "");
69                     m_9 += "";
70                 }
71                 else m_9 += "";
72                 if (m_9 != "零圆整")
73                     m_9 = m_9.Replace("零圆", "");
74                 m_9 = m_9.Replace("零分", "");
75                 if (type == "数量")
76                     return m_8;
77                 else
78                     return m_9;
79             }
80             catch (Exception ex)
81             {
82                 return ex.Message;
83             }
84             #endregion
85         }

 

C# 数字转换成大写

标签:sum   turn   returns   getc   insert   价格   param   i++   public   

原文地址:http://www.cnblogs.com/mybk/p/7246239.html

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