存在一些問題
不太完善
比如輸入100出現一百零十零
不太完善
比如輸入100出現一百零十零
1 /// <summary>
2 /// 返回數字(暫時只支持3位數以内)
3 /// </summary>
4 /// <param name="num"></param>
5 /// <returns></returns>
6 public string CastToChineseNumber(string num)
7 {
8 string CNum = num;//設置將要返回的數字等於輸入的數字
9 if (CheckNum(CNum))
10 {
11 switch (num.Length)
12 {
13 case 0://如果沒有輸入數字
14 CNum = "N/A"; //未知
15 break;
16 case 1://如果是1位的數字
17 CNum = GetCNum(num);
18 break;
19 case 2://2位的數字
20 if (num.Substring(1) == "0" )//處理 10,20,3090這類數字
21 {
22 if (num.Substring(0, 1) == "1")
23 {
24 CNum = "十";
25 }
26 else
27 {
28 CNum = GetCNum(num.Substring(0, 1)) + "十";
29 }
30 }
31 else if(num.Substring(0,1)=="1")//處理11轉換為 十一 而不是一十一
32 {
33 CNum = "十" + GetCNum(num.Substring(1));
34 }
35 else
36 {
37 CNum = GetCNum(num.Substring(0, 1)) + "十" + GetCNum(num.Substring(1));
38 }
39 break;
40 case 3://如果是3位的數字
41 string aa=num.Substring(1,1);
42 CNum = GetCNum(num.Substring(0, 1)) + "百" + GetCNum(num.Substring(1,1)) + "十" + GetCNum(num.Substring(2)); break;
43 default: break;
44 }
45 }
46 return CNum;
47
48 }
49 /// <summary>
50 /// 檢查是否是數字
51 /// </summary>
52 /// <param name="num"></param>
53 /// <returns></returns>
54 public bool CheckNum(string num)
55 {
56 string Num = "0123456789";
57 char [] nums = num.ToCharArray();
58 bool isNum=false;
59 foreach (char n in nums)
60 {
61 if (Num.Contains(n.ToString()))
62 {
63 isNum = true;
64 }
65 else
66 {
67 isNum = false;
68 break;
69 }
70 }
71 return isNum;
72 }
73 /// <summary>
74 /// 獲取單個數字對應的漢字
75 /// </summary>
76 /// <param name="num"></param>
77 /// <returns></returns>
78 public string GetCNum(string num)
79 {
80 string Cnum = "";
81 switch (int.Parse(num))
82 {
83 case 0:
84 Cnum = "零"; break;
85 case 1:
86 Cnum = "一"; break;
87 case 2:
88 Cnum = "二"; break;
89 case 3:
90 Cnum = "三"; break;
91 case 4:
92 Cnum = "四"; break;
93 case 5:
94 Cnum = "五"; break;
95 case 6:
96 Cnum = "六"; break;
97 case 7:
98 Cnum = "七"; break;
99 case 8:
100 Cnum = "八"; break;
101 case 9:
102 Cnum = "九"; break;
103 }
104 return Cnum;
105 }
2 /// 返回數字(暫時只支持3位數以内)
3 /// </summary>
4 /// <param name="num"></param>
5 /// <returns></returns>
6 public string CastToChineseNumber(string num)
7 {
8 string CNum = num;//設置將要返回的數字等於輸入的數字
9 if (CheckNum(CNum))
10 {
11 switch (num.Length)
12 {
13 case 0://如果沒有輸入數字
14 CNum = "N/A"; //未知
15 break;
16 case 1://如果是1位的數字
17 CNum = GetCNum(num);
18 break;
19 case 2://2位的數字
20 if (num.Substring(1) == "0" )//處理 10,20,3090這類數字
21 {
22 if (num.Substring(0, 1) == "1")
23 {
24 CNum = "十";
25 }
26 else
27 {
28 CNum = GetCNum(num.Substring(0, 1)) + "十";
29 }
30 }
31 else if(num.Substring(0,1)=="1")//處理11轉換為 十一 而不是一十一
32 {
33 CNum = "十" + GetCNum(num.Substring(1));
34 }
35 else
36 {
37 CNum = GetCNum(num.Substring(0, 1)) + "十" + GetCNum(num.Substring(1));
38 }
39 break;
40 case 3://如果是3位的數字
41 string aa=num.Substring(1,1);
42 CNum = GetCNum(num.Substring(0, 1)) + "百" + GetCNum(num.Substring(1,1)) + "十" + GetCNum(num.Substring(2)); break;
43 default: break;
44 }
45 }
46 return CNum;
47
48 }
49 /// <summary>
50 /// 檢查是否是數字
51 /// </summary>
52 /// <param name="num"></param>
53 /// <returns></returns>
54 public bool CheckNum(string num)
55 {
56 string Num = "0123456789";
57 char [] nums = num.ToCharArray();
58 bool isNum=false;
59 foreach (char n in nums)
60 {
61 if (Num.Contains(n.ToString()))
62 {
63 isNum = true;
64 }
65 else
66 {
67 isNum = false;
68 break;
69 }
70 }
71 return isNum;
72 }
73 /// <summary>
74 /// 獲取單個數字對應的漢字
75 /// </summary>
76 /// <param name="num"></param>
77 /// <returns></returns>
78 public string GetCNum(string num)
79 {
80 string Cnum = "";
81 switch (int.Parse(num))
82 {
83 case 0:
84 Cnum = "零"; break;
85 case 1:
86 Cnum = "一"; break;
87 case 2:
88 Cnum = "二"; break;
89 case 3:
90 Cnum = "三"; break;
91 case 4:
92 Cnum = "四"; break;
93 case 5:
94 Cnum = "五"; break;
95 case 6:
96 Cnum = "六"; break;
97 case 7:
98 Cnum = "七"; break;
99 case 8:
100 Cnum = "八"; break;
101 case 9:
102 Cnum = "九"; break;
103 }
104 return Cnum;
105 }