欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#實(shí)現(xiàn)將浮點(diǎn)數(shù)表示的貨幣數(shù)量以漢字大寫形式輸出的方法

 更新時(shí)間:2015年08月13日 12:32:33   作者:北風(fēng)其涼  
這篇文章主要介紹了C#實(shí)現(xiàn)將浮點(diǎn)數(shù)表示的貨幣數(shù)量以漢字大寫形式輸出的方法,涉及C#針對(duì)浮點(diǎn)數(shù)的遍歷與字符替換操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了C#實(shí)現(xiàn)將浮點(diǎn)數(shù)表示的貨幣數(shù)量以漢字大寫形式輸出的方法。分享給大家供大家參考。具體如下:

1.函數(shù)代碼

注:本段代碼中能轉(zhuǎn)化的最大的數(shù)為(1億億-0.01),如果要轉(zhuǎn)化更大的浮點(diǎn)數(shù),則需要做適當(dāng)修改。

/// <summary>
/// 將字符型變量轉(zhuǎn)化為大寫漢語數(shù)字
/// </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>
/// 把數(shù)字轉(zhuǎn)換為大寫數(shù)字
/// </summary>
/// <param name="n"></param>
/// <returns></returns>
private static string RMBToChr(double n)
{
 //保留小數(shù)點(diǎn)后兩位數(shù)字
 string sMoney = n.ToString("#0.00");
 StringBuilder sbResult = new StringBuilder();
 for (int i = 0; i < sMoney.Length; i++)
 {
  //遇到小數(shù)點(diǎn),則后面 A.XX 寫為 A圓X角X分
  if (sMoney[i] == '.')
  {
   sbResult.Append("圓");
   //角和分屬性都為0時(shí)直接寫整字
   if (sMoney[i + 1] == '0' && sMoney[i + 2] == '0')
   {
    sbResult.Append("整");
    break;
   }
   else
   {
    //角和分屬性只有在對(duì)應(yīng)位不為0時(shí)才寫
    if (sMoney[i + 1] != '0')
    {
     sbResult.Append(NumToChr(sMoney[i + 1]) + "角");
    }
    if (sMoney[i + 2] != '0')
    {
     sbResult.Append(NumToChr(sMoney[i + 2]) + "分");
    }
    else //分為0時(shí)也要寫整字
    {
     sbResult.Append("整");
    }
    break;
   }
  }
  //非零數(shù)字直接輸出對(duì)應(yīng)數(shù)字和位
  if (sMoney[i] != '0')
  {
   sbResult.Append(NumToChr(sMoney[i]));
   //補(bǔ)上相應(yīng)位的權(quán)
   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("這個(gè)數(shù)太大了!");
   }
  }
  else //如果該位數(shù)字為0,則萬位和億位要寫權(quán),多個(gè)連續(xù)0就寫一個(gè)零
  {
   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函數(shù)調(diào)用

static void Main(string[] args)
{
 //數(shù)字轉(zhuǎn)化為人民幣大寫
 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.運(yùn)行示例

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • c# 多線程處理多個(gè)數(shù)據(jù)的方法

    c# 多線程處理多個(gè)數(shù)據(jù)的方法

    這篇文章主要介紹了c# 多線程處理多個(gè)數(shù)據(jù)的方法,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#基于WebSocket實(shí)現(xiàn)聊天室功能

    C#基于WebSocket實(shí)現(xiàn)聊天室功能

    這篇文章主要為大家詳細(xì)介紹了C#基于WebSocket實(shí)現(xiàn)聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 如何用C#實(shí)現(xiàn)壓縮文件

    如何用C#實(shí)現(xiàn)壓縮文件

    話說當(dāng)今壓縮市場(chǎng)三足鼎立,能叫上名號(hào)的有zip、rar、7z。其中zip是壓縮界的鼻祖,在各大平臺(tái)上的流行度最廣,rar是商業(yè)軟件,壓縮率和效率都是很高的。7z是開源的,屬于后起之秀。這篇文章介紹了如何使用ICSharpCode組件,在windows平臺(tái)下zip的壓縮與解壓的方法
    2021-06-06
  • C# 實(shí)現(xiàn)FTP客戶端的小例子

    C# 實(shí)現(xiàn)FTP客戶端的小例子

    這篇文章主要介紹了C# 如何實(shí)現(xiàn)FTP客戶端,文中實(shí)例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#實(shí)現(xiàn)根據(jù)銀行卡卡號(hào)判斷銀行名

    C#實(shí)現(xiàn)根據(jù)銀行卡卡號(hào)判斷銀行名

    這篇文章主要介紹了C#實(shí)現(xiàn)根據(jù)銀行卡卡號(hào)判斷銀行名,是從其他網(wǎng)友的java程序改編而來,有需要的小伙伴可以參考下。
    2015-07-07
  • C# Winform實(shí)現(xiàn)波浪滾動(dòng)效果

    C# Winform實(shí)現(xiàn)波浪滾動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了C# Winform實(shí)現(xiàn)波浪滾動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C# SqlHelper應(yīng)用開發(fā)學(xué)習(xí)

    C# SqlHelper應(yīng)用開發(fā)學(xué)習(xí)

    這篇文章主要和大家一起學(xué)習(xí)C# SqlHelper應(yīng)用開發(fā),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Unity編輯器資源導(dǎo)入處理函數(shù)OnPreprocessAudio用法示例

    Unity編輯器資源導(dǎo)入處理函數(shù)OnPreprocessAudio用法示例

    這篇文章主要為大家介紹了Unity編輯器資源導(dǎo)入處理函數(shù)OnPreprocessAudio用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 基于NPOI用C#開發(fā)的Excel以及表格設(shè)置

    基于NPOI用C#開發(fā)的Excel以及表格設(shè)置

    這篇文章主要為大家詳細(xì)介紹了基于NPOI用C#開發(fā)的Excel以及表格設(shè)置,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#中yield return用法分析

    C#中yield return用法分析

    這篇文章主要介紹了C#中yield return用法,對(duì)比使用yield return與不使用yield return的流程,更直觀的分析了yield return的用法,需要的朋友可以參考下
    2014-09-09

最新評(píng)論