货币大写转换类
1 public class ConverMoney
2 {
3 public static string ConvertToUpper(double inputNum)
4 {
5 string strTemp = inputNum.ToString("f2");
6 return ProcessLeft(strTemp)+ProcessRight(strTemp);
7 }
8
9 #region 处理整数部分
10 private static string ProcessLeft(string inputNum)
11 {
12 int temp = Convert.ToInt32(inputNum.Substring(0, inputNum.IndexOf('.')));
13 Stack<string> processStack=new Stack<string>();
14 string[] separate ={ "拾", "佰", "仟", "万", "十","佰","仟","亿" };
15 int i=0;
16 if(temp<10)
17 {
18 return temp.ToString();
19 }
20 else
21 {
22 while (true)
23 {
24 if (temp % 10 != 0)
25 {
26 if (i != 0)
27 processStack.Push(separate[i-1]);
28 processStack.Push(ConvertNumToUpper(temp % 10));
29
30 }
31 else
32 {
33 if (processStack.Count != 0 && processStack.Peek() != "零")
34 processStack.Push("零");
35
36 }
37 i++;
38 temp = temp / 10;
39 if (temp == 0)
40 break;
41 }
42 }
43 string returnStr = "";
44 while (processStack.Count != 0)
45 returnStr = returnStr + processStack.Pop();
46 return returnStr;
47 }
48 #endregion
49
50 #region 处理小数部分
51 private static string ProcessRight(string inputNum)
52 {
53 int temp1=Convert.ToInt32(inputNum.Substring(inputNum.IndexOf('.') + 1,1));
54 int temp2 = Convert.ToInt32(inputNum.Substring(inputNum.IndexOf('.') + 2, 1));
55 if (temp1 == 0 && temp2 == 0)
56 return "圆整";
57 else
58 return "圆零"+ConvertNumToUpper(temp1) + "角" + ConvertNumToUpper(temp2) + "分";
59
60 }
61 #endregion
62
63 #region 数字转换成大写
64 private static string ConvertNumToUpper(int input)
65 {
66 string[] UpperNum ={ "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒" ,"玖"};
67 if (input <= 9)
68 {
69 return UpperNum[input];
70 }
71 else
72 {
73 throw new Exception("转换错误");
74 }
75 }
76 #endregion
77 }
2 {
3 public static string ConvertToUpper(double inputNum)
4 {
5 string strTemp = inputNum.ToString("f2");
6 return ProcessLeft(strTemp)+ProcessRight(strTemp);
7 }
8
9 #region 处理整数部分
10 private static string ProcessLeft(string inputNum)
11 {
12 int temp = Convert.ToInt32(inputNum.Substring(0, inputNum.IndexOf('.')));
13 Stack<string> processStack=new Stack<string>();
14 string[] separate ={ "拾", "佰", "仟", "万", "十","佰","仟","亿" };
15 int i=0;
16 if(temp<10)
17 {
18 return temp.ToString();
19 }
20 else
21 {
22 while (true)
23 {
24 if (temp % 10 != 0)
25 {
26 if (i != 0)
27 processStack.Push(separate[i-1]);
28 processStack.Push(ConvertNumToUpper(temp % 10));
29
30 }
31 else
32 {
33 if (processStack.Count != 0 && processStack.Peek() != "零")
34 processStack.Push("零");
35
36 }
37 i++;
38 temp = temp / 10;
39 if (temp == 0)
40 break;
41 }
42 }
43 string returnStr = "";
44 while (processStack.Count != 0)
45 returnStr = returnStr + processStack.Pop();
46 return returnStr;
47 }
48 #endregion
49
50 #region 处理小数部分
51 private static string ProcessRight(string inputNum)
52 {
53 int temp1=Convert.ToInt32(inputNum.Substring(inputNum.IndexOf('.') + 1,1));
54 int temp2 = Convert.ToInt32(inputNum.Substring(inputNum.IndexOf('.') + 2, 1));
55 if (temp1 == 0 && temp2 == 0)
56 return "圆整";
57 else
58 return "圆零"+ConvertNumToUpper(temp1) + "角" + ConvertNumToUpper(temp2) + "分";
59
60 }
61 #endregion
62
63 #region 数字转换成大写
64 private static string ConvertNumToUpper(int input)
65 {
66 string[] UpperNum ={ "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒" ,"玖"};
67 if (input <= 9)
68 {
69 return UpperNum[input];
70 }
71 else
72 {
73 throw new Exception("转换错误");
74 }
75 }
76 #endregion
77 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述