程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#完成將浮點數表現的泉幣數目以漢字年夜寫情勢輸入的辦法

C#完成將浮點數表現的泉幣數目以漢字年夜寫情勢輸入的辦法

編輯:C#入門知識

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved