美元的數字轉中文輸出(人民幣也是yiy)
以前聽說過有這麼一個問題,但自己沒研究,今天終於遇到了,到網上一搜,沒什麼特別清晰地代碼,於是決定還是自己寫一個好了,下面貼出來分享,如有雷同純屬巧合!
/// <summary><br /> /// 計算輸入數字美元用中文表示<br /> /// </summary><br /> public static void WriteDollersWithChinese()<br /> {<br /> //string num = "零壹貳三肆伍陸柒捌玖 ";<br /> string num = "零一二三四五六七八九";<br /> //string[] dw = new string[] { "", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "億", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "萬" };<br /> string[] dw = new string[] { "", "十", "百", "千", "萬", "十", "百", "千", "億", "十", "百", "千", "萬", "十", "百", "千", "萬" };<br /> Console.WriteLine("請輸入一個美元數字!");<br /> string input = Console.ReadLine().Trim();<br /> string[] sp = input.Split('.');<br /> #region 計算美元部分<br /> string output1 = string.Empty;<br /> string temp1 = sp[0].Trim();<br /> //去除首部的零<br /> while (true)<br /> {<br /> if (temp1.StartsWith("0"))<br /> {<br /> temp1 = temp1.Substring(1, temp1.Length - 1);<br /> }<br /> else<br /> {<br /> break;<br /> }<br /> }<br /> //反轉數組從而避免計算位元,十分巧妙的一招<br /> temp1.Reverse();<br /> int length = temp1.Length;<br /> while (temp1.Length > 1)<br /> {<br /> output1 = output1 + num[int.Parse(temp1.Substring(0, 1))] + dw[temp1.Length - 1];<br /> temp1 = temp1.Substring(1, temp1.Length - 1);<br /> }<br /> output1 += "美元";<br /> #endregion<br /> #region 計算美分部分<br /> string output2 = string.Empty;<br /> string temp2 = sp[1].Trim();<br /> if (temp2.StartsWith("0"))<br /> {<br /> output2 = num[int.Parse(temp2.Substring(1, 1))] + "美分";<br /> }<br /> else<br /> {<br /> output2 = num[int.Parse(temp2.Substring(0, 1))] + "拾" + num[int.Parse(temp2.Substring(1, 1))] + "美分";<br /> }<br /> #endregion<br /> Console.WriteLine("您輸入的是:/r" + output1 + " " + output2);<br /> Console.ReadKey();<br /> }