最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)化為大寫漢語(yǔ)數(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("萬(wàn)"); 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("萬(wàn)"); break;
    default: throw new Exception("這個(gè)數(shù)太大了!");
   }
  }
  else //如果該位數(shù)字為0,則萬(wàn)位和億位要寫權(quán),多個(gè)連續(xù)0就寫一個(gè)零
  {
   int temp = sMoney.Length - 4 - i;
   if (temp == 4) { sbResult.Append("萬(wàn)"); 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# double類型變量比較分析

    C# double類型變量比較分析

    這篇文章主要介紹了C# double類型變量比較分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • C#中的多線程多參數(shù)傳遞詳解

    C#中的多線程多參數(shù)傳遞詳解

    第一種解決方案的原理是:將線程執(zhí)行的方法和參數(shù)都封裝到一個(gè)類里面。通過(guò)實(shí)例化該類,方法就可以調(diào)用屬性來(lái)實(shí)現(xiàn)間接的類型安全地傳遞多個(gè)參數(shù)
    2014-01-01
  • 淺析C#?AsyncLocal如何實(shí)現(xiàn)Thread間傳值

    淺析C#?AsyncLocal如何實(shí)現(xiàn)Thread間傳值

    這篇文章主要是來(lái)和大家一起討論一下C#?AsyncLocal如何實(shí)現(xiàn)Thread間傳值,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • C#創(chuàng)建控制Windows服務(wù)

    C#創(chuàng)建控制Windows服務(wù)

    這篇文章介紹了C#創(chuàng)建和控制Windows服務(wù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • 初學(xué)C#所需明白的那些點(diǎn)

    初學(xué)C#所需明白的那些點(diǎn)

    這篇文章主要介紹了初學(xué)C#所需明白的那些點(diǎn),以及一些零碎知識(shí)點(diǎn)筆記,以供大家學(xué)習(xí)參考
    2023-03-03
  • C#中的引用類型以及特殊引用類型詳解

    C#中的引用類型以及特殊引用類型詳解

    本文詳細(xì)講解了C#中的引用類型以及特殊引用類型,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 詳解C#如何對(duì)ListBox控件中的數(shù)據(jù)進(jìn)行操作

    詳解C#如何對(duì)ListBox控件中的數(shù)據(jù)進(jìn)行操作

    這篇文章主要為大家詳細(xì)介紹了C#中對(duì)ListBox控件中的數(shù)據(jù)進(jìn)行的操作,主要包括添加、刪除、清空、選擇、排序等,感興趣的小伙伴可以了解下
    2024-03-03
  • Unity3d實(shí)現(xiàn)無(wú)限循環(huán)滾動(dòng)背景

    Unity3d實(shí)現(xiàn)無(wú)限循環(huán)滾動(dòng)背景

    這篇文章主要為大家詳細(xì)介紹了Unity3d實(shí)現(xiàn)無(wú)限循環(huán)滾動(dòng)背景,一個(gè)完整的商店廣告牌組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C#線程委托BeginInvoke與EndInvoke的用法

    C#線程委托BeginInvoke與EndInvoke的用法

    這篇文章介紹了C#線程委托BeginInvoke與EndInvoke的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • c#爬蟲(chóng)爬取京東的商品信息

    c#爬蟲(chóng)爬取京東的商品信息

    這篇文章主要給大家介紹了關(guān)于利用c#爬蟲(chóng)爬取京東商品信息的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11

最新評(píng)論

西峡县| 延川县| 凌海市| 留坝县| 普定县| 台中县| 鲜城| 招远市| 灵台县| 临潭县| 宁蒗| 武安市| 文化| 安平县| 崇礼县| 綦江县| 揭东县| 内江市| 新邵县| 武宁县| 闻喜县| 万宁市| 连城县| 宝清县| 高阳县| 当雄县| 湘潭县| 江都市| 朝阳区| 贞丰县| 磐安县| 和静县| 大英县| 阜南县| 博野县| 抚顺市| 汉阴县| 微山县| 察哈| 泸定县| 鹤岗市|