![](https://i-blog.csdnimg.cn/blog_migrate/2148286d2b8080e45c4d0b180e6ce05f.jpeg)
1
using
System;
2
using
System.Collections.Generic;
3
using
System.Text;
4![](/Images/OutliningIndicators/None.gif)
5
namespace
ConvertNum2Chinese
6
{
7
class Program
8
{
9
private Dictionary<char, string> _numCharacter;
10
private Dictionary<int, string> _numPosName;
11
private Dictionary<int, string> _numPosName2;
12![](/Images/OutliningIndicators/InBlock.gif)
13
public Program()
14
{
15
_numCharacter = new Dictionary<char, string>(10);
16
_numCharacter.Add('0', "零");
17
_numCharacter.Add('1', "壹");
18
_numCharacter.Add('2', "贰");
19
_numCharacter.Add('3', "叁");
20
_numCharacter.Add('4', "肆");
21
_numCharacter.Add('5', "伍");
22
_numCharacter.Add('6', "陆");
23
_numCharacter.Add('7', "柒");
24
_numCharacter.Add('8', "扒");
25
_numCharacter.Add('9', "玖");
26![](/Images/OutliningIndicators/InBlock.gif)
27
_numPosName = new Dictionary<int, string>(4);
28
_numPosName.Add(0, "仟");
29
_numPosName.Add(1, "佰");
30
_numPosName.Add(2, "拾");
31
_numPosName.Add(3, string.Empty);
32![](/Images/OutliningIndicators/InBlock.gif)
33
_numPosName2 = new Dictionary<int, string>(4);
34
// _numPosName2.Add(-1, "元");
35
_numPosName2.Add(1, string.Empty);
36
_numPosName2.Add(2, "万");
37
_numPosName2.Add(3, "亿");
38
_numPosName2.Add(4, "兆");
39
}
40![](/Images/OutliningIndicators/InBlock.gif)
41
static void Main(string[] args)
42
{
43
Program p = new Program();
44![](/Images/OutliningIndicators/InBlock.gif)
45
Display("100000000000", p);
46
Display("99999999.1", p);
47
Display("120012.10", p);
48
Display("0.12", p);
49
Display("0.1211", p);
50
Display("0.00", p);
51
Display("", p);
52
Display("0", p);
53
Display(".0", p);
54
}
55![](/Images/OutliningIndicators/InBlock.gif)
56
private static void Display(string num, Program p)
57
{
58
Console.WriteLine("Before: " + num);
59
Console.WriteLine("After: " + p.ConvertNum2Chinese(num));
60
Console.WriteLine();
61
}
62![](/Images/OutliningIndicators/InBlock.gif)
63
public string ConvertNum2Chinese(string num)
64
{
65
int index = num.IndexOf('.');
66![](/Images/OutliningIndicators/InBlock.gif)
67
StringBuilder leftNum;
68
StringBuilder rightNum;
69![](/Images/OutliningIndicators/InBlock.gif)
70
if (index == -1)
71
{
72
leftNum = new StringBuilder(num);
73
rightNum = new StringBuilder();
74
}
75
else
76
{
77
leftNum = new StringBuilder(num.Substring(0, index));
78
rightNum = new StringBuilder(num.Substring(index + 1, num.Length - index - 1));
79
}
80![](/Images/OutliningIndicators/InBlock.gif)
81
string result = string.Empty;
82![](/Images/OutliningIndicators/InBlock.gif)
83
result += DealLeftNums(leftNum);
84
result += DealRightNums(rightNum);
85![](/Images/OutliningIndicators/InBlock.gif)
86
if (result.Length == 0)
87
{
88
result = "零元";
89
}
90![](/Images/OutliningIndicators/InBlock.gif)
91
return result;
92
}
93![](/Images/OutliningIndicators/InBlock.gif)
94
private StringBuilder DealRightNums(StringBuilder rightNum)
95
{
96
rightNum.Append("00");
97
rightNum.Remove(2, rightNum.Length - 2);
98![](/Images/OutliningIndicators/InBlock.gif)
99
StringBuilder s = new StringBuilder();
100![](/Images/OutliningIndicators/InBlock.gif)
101
s.Append(_numCharacter[rightNum[0]]);
102
if (rightNum[0] != '0')
103
{
104
s.Append("角");
105
}
106![](/Images/OutliningIndicators/InBlock.gif)
107
s.Append(_numCharacter[rightNum[1]]);
108
if (rightNum[1] != '0')
109
{
110
s.Append("分");
111
}
112![](/Images/OutliningIndicators/InBlock.gif)
113
Deal0Nums(s);
114![](/Images/OutliningIndicators/InBlock.gif)
115
return s;
116
}
117![](/Images/OutliningIndicators/InBlock.gif)
118
private StringBuilder DealLeftNums(StringBuilder leftNum)
119
{
120
int a = leftNum.Length % 4;
121![](/Images/OutliningIndicators/InBlock.gif)
122
for (int i = 0; i < a; i++)
123
{
124
leftNum.Insert(0, '0');
125
}
126![](/Images/OutliningIndicators/InBlock.gif)
127
int b = leftNum.Length / 4;
128![](/Images/OutliningIndicators/InBlock.gif)
129
StringBuilder s = new StringBuilder();
130
string leftNumStr = leftNum.ToString();
131
for (int i = 0; i < b; i++)
132
{
133
s.Append(Deal4Num(leftNumStr.Substring(i * 4, 4), _numPosName2[b - i]));
134
}
135![](/Images/OutliningIndicators/InBlock.gif)
136
if (s.Length > 0)
137
{
138
s.Append("元");
139
}
140![](/Images/OutliningIndicators/InBlock.gif)
141
Deal0Nums(s);
142![](/Images/OutliningIndicators/InBlock.gif)
143
return s;
144
}
145![](/Images/OutliningIndicators/InBlock.gif)
146
private string Deal4Num(string num, string s)
147
{
148
StringBuilder result = new StringBuilder();
149![](/Images/OutliningIndicators/InBlock.gif)
150
for (int i = 0; i < num.Length; i++)
151
{
152
if (num[i] > '0')
153
{
154
result.Append(_numCharacter[num[i]] + _numPosName[i]);
155
}
156
else
157
{
158
result.Append(_numCharacter[num[i]]);
159
}
160
}
161![](/Images/OutliningIndicators/InBlock.gif)
162
result.Append(s);
163![](/Images/OutliningIndicators/InBlock.gif)
164
return result.ToString();
165
}
166![](/Images/OutliningIndicators/InBlock.gif)
167
private void Deal0Nums(StringBuilder sb)
168
{
169
for (int i = 0; i < sb.Length; i++)
170
{
171
if (sb[i] == '零')
172
{
173
if (i == 0)
174
{
175
sb.Remove(i, 1);
176
Deal0Nums(sb);
177
return;
178
}
179
else if (sb[i - 1] == '零' || i == sb.Length - 1)
180
{
181
sb.Remove(i, 1);
182
i--;
183
}
184![](/Images/OutliningIndicators/InBlock.gif)
185
if (i < sb.Length - 2 && _numPosName2.ContainsValue(new string(sb[i + 1], 1)))
186
{
187
sb.Remove(i, 1);
188
}
189![](/Images/OutliningIndicators/InBlock.gif)
190
if (_numPosName2.ContainsValue(new string(sb[i], 1)))
191
{
192
if (_numPosName2.ContainsValue(new string(sb[i - 1], 1)))
193
{
194
sb.Remove(i, 1);
195
}
196
}
197
}
198
else if (sb[i] == '元')
199
{
200
if (sb[i - 1] == '零')
201
{
202
sb.Remove(i - 1, 1);
203
}
204
}
205
}
206
}
207
}
208
}
209
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/InBlock.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/InBlock.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/InBlock.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/InBlock.gif)
87
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
90
![](/Images/OutliningIndicators/InBlock.gif)
91
![](/Images/OutliningIndicators/InBlock.gif)
92
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
96
![](/Images/OutliningIndicators/InBlock.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/InBlock.gif)
102
![](/Images/OutliningIndicators/InBlock.gif)
103
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
106
![](/Images/OutliningIndicators/InBlock.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/InBlock.gif)
109
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
110
![](/Images/OutliningIndicators/InBlock.gif)
111
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
112
![](/Images/OutliningIndicators/InBlock.gif)
113
![](/Images/OutliningIndicators/InBlock.gif)
114
![](/Images/OutliningIndicators/InBlock.gif)
115
![](/Images/OutliningIndicators/InBlock.gif)
116
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
117
![](/Images/OutliningIndicators/InBlock.gif)
118
![](/Images/OutliningIndicators/InBlock.gif)
119
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
120
![](/Images/OutliningIndicators/InBlock.gif)
121
![](/Images/OutliningIndicators/InBlock.gif)
122
![](/Images/OutliningIndicators/InBlock.gif)
123
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
124
![](/Images/OutliningIndicators/InBlock.gif)
125
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
126
![](/Images/OutliningIndicators/InBlock.gif)
127
![](/Images/OutliningIndicators/InBlock.gif)
128
![](/Images/OutliningIndicators/InBlock.gif)
129
![](/Images/OutliningIndicators/InBlock.gif)
130
![](/Images/OutliningIndicators/InBlock.gif)
131
![](/Images/OutliningIndicators/InBlock.gif)
132
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
133
![](/Images/OutliningIndicators/InBlock.gif)
134
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
135
![](/Images/OutliningIndicators/InBlock.gif)
136
![](/Images/OutliningIndicators/InBlock.gif)
137
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
138
![](/Images/OutliningIndicators/InBlock.gif)
139
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
140
![](/Images/OutliningIndicators/InBlock.gif)
141
![](/Images/OutliningIndicators/InBlock.gif)
142
![](/Images/OutliningIndicators/InBlock.gif)
143
![](/Images/OutliningIndicators/InBlock.gif)
144
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
145
![](/Images/OutliningIndicators/InBlock.gif)
146
![](/Images/OutliningIndicators/InBlock.gif)
147
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
148
![](/Images/OutliningIndicators/InBlock.gif)
149
![](/Images/OutliningIndicators/InBlock.gif)
150
![](/Images/OutliningIndicators/InBlock.gif)
151
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
152
![](/Images/OutliningIndicators/InBlock.gif)
153
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
154
![](/Images/OutliningIndicators/InBlock.gif)
155
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
156
![](/Images/OutliningIndicators/InBlock.gif)
157
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
158
![](/Images/OutliningIndicators/InBlock.gif)
159
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
160
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
161
![](/Images/OutliningIndicators/InBlock.gif)
162
![](/Images/OutliningIndicators/InBlock.gif)
163
![](/Images/OutliningIndicators/InBlock.gif)
164
![](/Images/OutliningIndicators/InBlock.gif)
165
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
166
![](/Images/OutliningIndicators/InBlock.gif)
167
![](/Images/OutliningIndicators/InBlock.gif)
168
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
169
![](/Images/OutliningIndicators/InBlock.gif)
170
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
171
![](/Images/OutliningIndicators/InBlock.gif)
172
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
173
![](/Images/OutliningIndicators/InBlock.gif)
174
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
175
![](/Images/OutliningIndicators/InBlock.gif)
176
![](/Images/OutliningIndicators/InBlock.gif)
177
![](/Images/OutliningIndicators/InBlock.gif)
178
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
179
![](/Images/OutliningIndicators/InBlock.gif)
180
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
181
![](/Images/OutliningIndicators/InBlock.gif)
182
![](/Images/OutliningIndicators/InBlock.gif)
183
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
184
![](/Images/OutliningIndicators/InBlock.gif)
185
![](/Images/OutliningIndicators/InBlock.gif)
186
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
187
![](/Images/OutliningIndicators/InBlock.gif)
188
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
189
![](/Images/OutliningIndicators/InBlock.gif)
190
![](/Images/OutliningIndicators/InBlock.gif)
191
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
192
![](/Images/OutliningIndicators/InBlock.gif)
193
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
194
![](/Images/OutliningIndicators/InBlock.gif)
195
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
196
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
197
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
198
![](/Images/OutliningIndicators/InBlock.gif)
199
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
200
![](/Images/OutliningIndicators/InBlock.gif)
201
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
202
![](/Images/OutliningIndicators/InBlock.gif)
203
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
204
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
205
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
206
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
207
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
208
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
209
![](/Images/OutliningIndicators/None.gif)
将实数转成中文大学金额。如1234.12转成壹仟贰佰叁拾肆元壹角贰分。
实现代码如下: