美元的数字转中文输出(人民币也是yiy)
以前听说过有这么一个问题,但自己没研究,今天终于遇到了,到网上一搜,没什么特别清晰地代码,于是决定还是自己写一个好了,下面贴出来分享,如有雷同纯属巧合!
/// <summary> /// 计算输入数字美元用中文表示 /// </summary> public static void WriteDollersWithChinese() { //string num = "零壹贰叁肆伍陆柒捌玖 "; string num = "零一二三四五六七八九"; //string[] dw = new string[] { "", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万", "拾", "佰", "仟", "万" }; string[] dw = new string[] { "", "十", "百", "千", "万", "十", "百", "千", "亿", "十", "百", "千", "万", "十", "百", "千", "万" }; Console.WriteLine("请输入一个美元数字!"); string input = Console.ReadLine().Trim(); string[] sp = input.Split('.'); #region 计算美元部分 string output1 = string.Empty; string temp1 = sp[0].Trim(); //去除首部的零 while (true) { if (temp1.StartsWith("0")) { temp1 = temp1.Substring(1, temp1.Length - 1); } else { break; } } //反转数组从而避免计算位数,十分巧妙的一招 temp1.Reverse(); int length = temp1.Length; while (temp1.Length > 1) { output1 = output1 + num[int.Parse(temp1.Substring(0, 1))] + dw[temp1.Length - 1]; temp1 = temp1.Substring(1, temp1.Length - 1); } output1 += "美元"; #endregion #region 计算美分部分 string output2 = string.Empty; string temp2 = sp[1].Trim(); if (temp2.StartsWith("0")) { output2 = num[int.Parse(temp2.Substring(1, 1))] + "美分"; } else { output2 = num[int.Parse(temp2.Substring(0, 1))] + "拾" + num[int.Parse(temp2.Substring(1, 1))] + "美分"; } #endregion Console.WriteLine("您输入的是:/r" + output1 + " " + output2); Console.ReadKey(); }