C#完成將浮點數表現的泉幣數目以漢字年夜寫情勢輸入的辦法。本站提示廣大學習愛好者:(C#完成將浮點數表現的泉幣數目以漢字年夜寫情勢輸入的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#完成將浮點數表現的泉幣數目以漢字年夜寫情勢輸入的辦法正文
本文實例講述了C#完成將浮點數表現的泉幣數目以漢字年夜寫情勢輸入的辦法。分享給年夜家供年夜家參考。詳細以下:
1.函數代碼
注:本段代碼中能轉化的最年夜的數為(1億億-0.01),假如要轉化更年夜的浮點數,則須要做恰當修正。
/// <summary> /// 將字符型變量轉化為年夜寫漢語數字 /// </summary> /// <param name="ch">字符 '0'~'9'</param> /// <returns></returns> private static string NumToChr(char ch) { switch (ch) { case '0': return "零"; case '1': return "壹"; case '2': return "貳"; case '3': return "三"; case '4': return "肆"; case '5': return "伍"; case '6': return "陸"; case '7': return "柒"; case '8': return "捌"; case '9': return "玖"; default: return ""; } } /// <summary> /// 把數字轉換為年夜寫數字 /// </summary> /// <param name="n"></param> /// <returns></returns> private static string RMBToChr(double n) { //保存小數點後兩位數字 string sMoney = n.ToString("#0.00"); StringBuilder sbResult = new StringBuilder(); for (int i = 0; i < sMoney.Length; i++) { //碰到小數點,則前面 A.XX 寫為 A圓X角X分 if (sMoney[i] == '.') { sbResult.Append("圓"); //角和分屬性都為0時直接寫整字 if (sMoney[i + 1] == '0' && sMoney[i + 2] == '0') { sbResult.Append("整"); break; } else { //角和分屬性只要在對應位不為0時才寫 if (sMoney[i + 1] != '0') { sbResult.Append(NumToChr(sMoney[i + 1]) + "角"); } if (sMoney[i + 2] != '0') { sbResult.Append(NumToChr(sMoney[i + 2]) + "分"); } else //分為0時也要寫整字 { sbResult.Append("整"); } break; } } //非零數字直接輸入對應數字和位 if (sMoney[i] != '0') { sbResult.Append(NumToChr(sMoney[i])); //補上響應位的權 int temp = sMoney.Length - 4 - i; switch (temp) { case 0: break; case 1: sbResult.Append("拾"); break; case 2: sbResult.Append("佰"); break; case 3: sbResult.Append("仟"); break; case 4: sbResult.Append("萬"); break; case 5: sbResult.Append("拾"); break; case 6: sbResult.Append("佰"); break; case 7: sbResult.Append("仟"); break; case 8: sbResult.Append("億"); break; case 9: sbResult.Append("拾"); break; case 10: sbResult.Append("百"); break; case 11: sbResult.Append("仟"); break; case 12: sbResult.Append("萬"); break; default: throw new Exception("這個數太年夜了!"); } } else //假如該位數字為0,則萬位和億位要寫權,多個持續0就寫一個零 { int temp = sMoney.Length - 4 - i; if (temp == 4) { sbResult.Append("萬"); continue; } else if (temp == 8) { sbResult.Append("億"); continue; } else if (sMoney[i + 1] == '0') { continue; } else sbResult.Append("零"); } } return sbResult.ToString(); }
2.Main函數挪用
static void Main(string[] args) { //數字轉化為國民幣年夜寫 Console.WriteLine(RMBToChr(12345)); Console.WriteLine(RMBToChr(60001.215)); Console.WriteLine(RMBToChr(70010001.8)); Console.WriteLine(RMBToChr(10110901.01)); Console.WriteLine(RMBToChr(0.01)); Console.ReadLine(); }
3.運轉示例
願望本文所述對年夜家的C#法式設計有所贊助。