|
最近由于项目的原因,需要写一个货币数字转换中文的算法,先在网了找了一下,结果发现无一列外都是用(Replace)替换的方式来实现的,所以想写个另外的算法;因为本人是学数学出身的,所以用纯数学的方法实现。
注意:本文中的算法支持小于1023 (也就是9999亿兆)货币数字转化。
货币中文说明: 在说明代码之前,首先让我们回顾一下货币的读法。
10020002.23 读为 壹仟零贰万零贰元贰角叁分 1020 读为 壹仟零贰拾元整。 100000 读为 拾万元整 0.13 读为 壹角叁分
代码:
测试工程 static void Main(string[] args) {
Console.WriteLine("请输入金额"); string inputNum = Console.ReadLine(); while (inputNum != "exit") {
//货币数字转化类 NumCast nc = new NumCast();
if (nc.IsValidated(inputNum)) { try { string chineseCharacter = nc.ConvertToChinese(inputNum); Console.WriteLine(chineseCharacter); } catch (Exception er) { Console.WriteLine(er.Message); } } else { Console.WriteLine("不合法的数字或格式"); }
Console.WriteLine("\n请输入金额"); inputNum = Console.ReadLine();
} Console.ReadLine(); }
|