存在一些問題
不太完善
比如輸入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,30
90這類數字
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
}
/// <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,30
90這類數字21
{22
if (num.Substring(0, 1) == "1")23
{24
CNum = "十";25
}26
else27
{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
else36
{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
else66
{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
}


浙公网安备 33010602011771号