将money转换成大写汉字

本文介绍了一种使用C#将数字转换为大写金额的方法,适用于财务系统中金额的显示。通过定义字符串数组对应数字的大写形式,并根据数字位数的不同采取不同的转换策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ExpandedBlockStart.gif代码
  1   public class Money
  2         {
  3             /// <summary>
  4             /// 要转换的数字
  5             /// </summary>
  6             private double j;
  7             /// <summary>
  8             /// 
  9             /// </summary>
 10             private string[] NumChineseCharacter = new string[] { """""""""""""""""""" };
 11 
 12             public Money(double m)
 13             {
 14                 this.j = m;
 15             }
 16 
 17             /// <summary>
 18             /// 判断输入的数字是否大于double类型
 19             /// </summary>
 20             private bool IsNumber
 21             {
 22                 get
 23                 {
 24                     if (j > double.MaxValue || j <= 0)
 25                         return false;
 26                     else
 27                         return true;
 28                 }
 29             }
 30             /// <summary>
 31             /// 数字转换成大写汉字主函数
 32             /// </summary>
 33             /// <returns>返回转换后的大写汉字</returns>
 34             public string Convert()
 35             {
 36                 string bb = "";
 37                 if (IsNumber)
 38                 {
 39                     string str = j.ToString();
 40                     string[] Num = str.Split('.');
 41                     if (Num.Length == 1)
 42                     {
 43                         bb = NumberString(Num[0]) + "元整";
 44                         bb = bb.Replace("零零""");
 45                     }
 46                     else
 47                     {
 48                         bb = NumberString(Num[0]) + "";
 49                         bb += FloatString(Num[1]);
 50                         bb = bb.Replace("零零""");
 51                     }
 52                 }
 53                 else
 54                 {
 55                     MessageBox.Show("你输入的数字格式不正确或不是数字!");
 56                 }
 57                 return bb;
 58             }
 59             /// <summary>
 60             /// 小数位转换只支持两位的小数
 61             /// </summary>
 62             /// <param name="Num">转换的小数</param>
 63             /// <returns>小数转换成汉字</returns>
 64             private string FloatString(string Num)
 65             {
 66                 string cc = "";
 67                 if (Num.Length > 2)
 68                 {
 69                     throw new FormatException("小数位数过多.");
 70                 }
 71                 else
 72                 {
 73                     string bb = ConvertString(Num);
 74                     int len = bb.IndexOf("");
 75                     if (len != 0)
 76                     {
 77                         bb = bb.Replace("""");
 78                         if (bb.Length == 1)
 79                         {
 80                             cc = bb.Substring(01+ "角整";
 81                         }
 82                         else
 83                         {
 84                             cc = bb.Substring(01+ "";
 85                             cc += bb.Substring(11+ "";
 86                         }
 87                     }
 88                     else
 89                         cc = bb + "";
 90                 }
 91                 return cc;
 92             }
 93             /// <summary>
 94             /// 判断数字位数以进行拆分转换
 95             /// </summary>
 96             /// <param name="Num">要进行拆分的数字</param>
 97             /// <returns>转换成的汉字</returns>
 98             private string NumberString(string Num)
 99             {
100                 string bb = "";
101                 if (Num.Length <= 4)
102                 {
103                     bb = Convert4(Num);
104                 }
105                 else if (Num.Length > 4 && Num.Length <= 8)
106                 {
107                     bb = Convert4(Num.Substring(0, Num.Length - 4)) + "";
108                     bb += Convert4(Num.Substring(Num.Length - 44));
109                 }
110                 else if (Num.Length > 8 && Num.Length <= 12)
111                 {
112                     bb = Convert4(Num.Substring(0, Num.Length - 8)) + "亿";
113                     if (Convert4(Num.Substring(Num.Length - 84)) == "")
114                         if (Convert4(Num.Substring(Num.Length - 44)) != "")
115                             bb += "";
116                         else
117                             bb += "";
118                     else
119                         bb += Convert4(Num.Substring(Num.Length - 84)) + "";
120                     bb += Convert4(Num.Substring(Num.Length - 44));
121                 }
122                 return bb;
123             }
124             /// <summary>
125             /// 四位数字的转换
126             /// </summary>
127             /// <param name="Num">准备转换的四位数字</param>
128             /// <returns>转换以后的汉字</returns>
129             private string Convert4(string Num)
130             {
131                 string bb = "";
132                 if (Num.Length == 1)
133                 {
134                     bb = ConvertString(Num);
135                 }
136                 else if (Num.Length == 2)
137                 {
138                     bb = ConvertString(Num);
139                     bb = Convert2(bb);
140                 }
141                 else if (Num.Length == 3)
142                 {
143                     bb = ConvertString(Num);
144                     bb = Convert3(bb);
145                 }
146                 else
147                 {
148                     bb = ConvertString(Num);
149                     string cc = "";
150                     string len = bb.Substring(04);
151                     if (len != "零零零零")
152                     {
153                         len = bb.Substring(03);
154                         if (len != "零零零")
155                         {
156                             bb = bb.Replace("零零零""");
157                             if (bb.Length == 1)
158                             {
159                                 bb = bb.Substring(01+ "";
160                             }
161                             else
162                             {
163                                 if (bb.Substring(01!= "" && bb.Substring(02!= "")
164                                     cc = bb.Substring(01+ "";
165                                 else
166                                     cc = bb.Substring(01);
167                                 bb = cc + Convert3(bb.Substring(13));
168                             }
169                         }
170                         else
171                         {
172                             bb = bb.Replace("零零零""");
173                         }
174                     }
175                     else
176                     {
177                         bb = bb.Replace("零零零零""");
178                     }
179                 }
180                 return bb;
181             }
182             /// <summary>
183             /// 将数字转换成汉字
184             /// </summary>
185             /// <param name="Num">需要转换的数字</param>
186             /// <returns>转换后的汉字</returns>
187             private string ConvertString(string Num)
188             {
189                 string bb = "";
190                 for (int i = 0; i < Num.Length; i++)
191                 {
192                     bb += NumChineseCharacter[int.Parse(Num.Substring(i, 1))];
193                 }
194                 return bb;
195             }
196             /// <summary>
197             /// 两位数字的转换
198             /// </summary>
199             /// <param name="Num">两位数字</param>
200             /// <returns>转换后的汉字</returns>
201             private string Convert2(string Num)
202             {
203                 string bb = ""string cc = "";
204                 string len = Num.Substring(01);
205                 if (len != "")
206                 {
207                     bb = Num.Replace("""");
208                     if (bb.Length == 1)
209                     {
210                         cc = bb.Substring(01+ "";
211                     }
212                     else
213                     {
214                         cc = bb.Substring(01+ "";
215                         cc += bb.Substring(11);
216                     }
217                 }
218                 else
219                     cc = Num;
220                 return cc;
221             }
222             /// <summary>
223             /// 三位数字的转换
224             /// </summary>
225             /// <param name="Num">三位数字</param>
226             /// <returns>转换后的汉字</returns>
227             private string Convert3(string Num)
228             {
229                 string bb = ""string cc = "";
230                 string len = Num.Substring(02);
231                 if (len != "零零")
232                 {
233                     bb = Num.Replace("零零""");
234                     if (bb.Length == 1)
235                     {
236                         bb = bb.Substring(01+ "";
237                     }
238                     else
239                     {
240                         if (bb.Substring(01!= "")
241                             cc = bb.Substring(01+ "";
242                         else
243                             cc = bb.Substring(01);
244                         bb = cc + Convert2(bb.Substring(12));
245                     }
246                 }
247                 else
248                 {
249                     bb = Num.Replace("零零""");
250                 }
251                 return bb;
252             }
253         }
254 
255 //调用TextBox输入显示
256  double m = Convert.ToDouble(textBox1.Text);
257  Money money = new Money(m);
258  textBox2.Text = money.Convert().ToString();

 

转载于:https://www.cnblogs.com/angleSJW/archive/2010/10/07/1845116.html

内容概要:本文深入探讨了Kotlin语言在函数式编程和跨平台开发方面的特性和优势,结合详细的代码案例,展示了Kotlin的核心技巧和应用场景。文章首先介绍了高阶函数和Lambda表达式的使用,解释了它们如何简化集合操作和回调函数处理。接着,详细讲解了Kotlin Multiplatform(KMP)的实现方式,包括共享模块的创建和平台特定模块的配置,展示了如何通过共享业务逻辑代码提高开发效率。最后,文章总结了Kotlin在Android开发、跨平台移动开发、后端开发和Web开发中的应用场景,并展望了其未来发展趋势,指出Kotlin将继续在函数式编程和跨平台开发领域不断完善和发展。; 适合人群:对函数式编程和跨平台开发感兴趣的开发者,尤其是有一定编程基础的Kotlin初学者和中级开发者。; 使用场景及目标:①理解Kotlin中高阶函数和Lambda表达式的使用方法及其在实际开发中的应用场景;②掌握Kotlin Multiplatform的实现方式,能够在多个平台上共享业务逻辑代码,提高开发效率;③了解Kotlin在不同开发领域的应用场景,为选择合适的技术栈提供参考。; 其他说明:本文不仅提供了理论知识,还结合了大量代码案例,帮助读者更好地理解和实践Kotlin的函数式编程特性和跨平台开发能力。建议读者在学习过程中动手实践代码案例,以加深理解和掌握。
内容概要:本文深入探讨了利用历史速度命令(HVC)增强仿射编队机动控制性能的方法。论文提出了HVC在仿射编队控制中的潜在价值,通过全面评估HVC对系统的影响,提出了易于测试的稳定性条件,并给出了延迟参数与跟踪误差关系的显式不等式。研究为两轮差动机器人(TWDRs)群提供了系统的协调编队机动控制方案,并通过9台TWDRs的仿真和实验验证了稳定性和综合性能改进。此外,文中还提供了详细的Python代码实现,涵盖仿射编队控制类、HVC增强、稳定性条件检查以及仿真实验。代码不仅实现了论文的核心思想,还扩展了邻居历史信息利用、动态拓扑优化和自适应控制等性能提升策略,更全面地反映了群体智能协作和性能优化思想。 适用人群:具备一定编程基础,对群体智能、机器人编队控制、时滞系统稳定性分析感兴趣的科研人员和工程师。 使用场景及目标:①理解HVC在仿射编队控制中的应用及其对系统性能的提升;②掌握仿射编队控制的具体实现方法,包括控制器设计、稳定性分析和仿真实验;③学习如何通过引入历史信息(如HVC)来优化群体智能系统的性能;④探索中性型时滞系统的稳定性条件及其在实际系统中的应用。 其他说明:此资源不仅提供了理论分析,还包括完整的Python代码实现,帮助读者从理论到实践全面掌握仿射编队控制技术。代码结构清晰,涵盖了从初始化配置、控制律设计到性能评估的各个环节,并提供了丰富的可视化工具,便于理解和分析系统性能。通过阅读和实践,读者可以深入了解HVC增强仿射编队控制的工作原理及其实际应用效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值