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#法式設計有所贊助。