01.using System;
02.using System.Data;
03.using System.Configuration;
04.using System.Web;
05.using System.Web.Security;
06.using System.Web.UI;
07.using System.Web.UI.WebControls;
08.using System.Web.UI.WebControls.WebParts;
09.using System.Web.UI.HtmlControls;
10.namespace FIH
11.{
12. /// <summary>
13. /// 功能:字符串处理函数集
14. /// </summary>
15. public class NumToBig
16. {
17. #region 私有成员
18. /// <summary>
19. /// 输入字符串
20. /// </summary>
21. private string inputString = null;
22. /// <summary>
23. /// 输出字符串
24. /// </summary>
25. private string outString = null;
26. /// <summary>
27. /// 提示信息
28. /// </summary>
29. private string noteMessage = null;
30. #endregion
31.
32. #region 公共属性
33. /// <summary>
34. /// 输入字符串
35. /// </summary>
36. public string InputString
37. {
38. get { return inputString; }
39. set { inputString = value; }
40. }
41. /// <summary>
42. /// 输出字符串
43. /// </summary>
44. public string OutString
45. {
46. get { return outString; }
47. set { outString = value; }
48. }
49. /// <summary>
50. /// 提示信息
51. /// </summary>
52. public string NoteMessage
53. {
54. get { return noteMessage; }
55. set { noteMessage = value; }
56. }
57. #endregion
58.
59. #region 构造函数
60. public NumToBig()
61. {
62. //
63. // TODO: 在此处添加构造函数逻辑
64. //
65. }
66. #endregion
67.
68. #region 公共方法
69. public void ConvertToChineseNum()
70. {
71. string numList = "零壹贰叁肆伍陆柒捌玖";
72. string rmbList = "分角元拾佰仟万拾佰仟亿拾佰仟万";
73. double number = 0;
74. string tempOutString = null;
75.
76. try
77. {
78. number = double.Parse(this.inputString);
79. }
80. catch
81. {
82. this.noteMessage = "传入参数非数字!";
83. return;
84. }
85.
86. if (number > 9999999999999.99)
87. this.noteMessage = "超出范围的人民币值";
88.
89. //将小数转化为整数字符串
90. string tempNumberString = Convert.ToInt64(number * 100).ToString();
91. int tempNmberLength = tempNumberString.Length;
92. int i = 0;
93. while (i < tempNmberLength)
94. {
95. int oneNumber = Int32.Parse(tempNumberString.Substring(i, 1));
96. string oneNumberChar = numList.Substring(oneNumber, 1);
97. string oneNumberUnit = rmbList.Substring(tempNmberLength - i - 1, 1);
98. if (oneNumberChar != "零")
99. tempOutString += oneNumberChar + oneNumberUnit;
100. else
101. {
102. if (oneNumberUnit == "亿" || oneNumberUnit == "万" || oneNumberUnit == "元" || oneNumberUnit == "零")
103. {
104. while (tempOutString.EndsWith("零"))
105. {
106. tempOutString = tempOutString.Substring(0, tempOutString.Length - 1);
107. }
108.
109. }
110. if (oneNumberUnit == "亿" || (oneNumberUnit == "万" && !tempOutString.EndsWith("亿")) || oneNumberUnit == "元")
111. {
112. tempOutString += oneNumberUnit;
113. }
114. else
115. {
116. bool tempEnd = tempOutString.EndsWith("亿");
117. bool zeroEnd = tempOutString.EndsWith("零");
118. if (tempOutString.Length > 1)
119. {
120. bool zeroStart = tempOutString.Substring(tempOutString.Length - 2, 2).StartsWith("零");
121. if (!zeroEnd && (zeroStart || !tempEnd))
122. tempOutString += oneNumberChar;
123. }
124. else
125. {
126. if (!zeroEnd && !tempEnd)
127. tempOutString += oneNumberChar;
128. }
129. }
130. }
131. i += 1;
132. }
133.
134. while (tempOutString.EndsWith("零"))
135. {
136. tempOutString = tempOutString.Substring(0, tempOutString.Length - 1);
137. }
138.
139. while (tempOutString.EndsWith("元"))
140. {
141. tempOutString = tempOutString + "整";
142. }
143.
144. this.outString = tempOutString;
145. }
146. #endregion
147. }
148.}
相关文章: