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

使用C#實(shí)現(xiàn)阿拉伯?dāng)?shù)字到大寫中文的轉(zhuǎn)換

 更新時(shí)間:2007年03月09日 00:00:00   投稿:mdxy-dxy  
這篇文章主要介紹了C#實(shí)現(xiàn)阿拉伯?dāng)?shù)字轉(zhuǎn)為大寫中文的實(shí)現(xiàn)代碼,需要的朋友可以參考下

 先記下來(lái),以備后用!

  /// <summary>
  /// 金額轉(zhuǎn)為大寫金額
  /// </summary>
  public class MoneyConvertChinese
  {
    /// <summary>
    /// 金額轉(zhuǎn)為大寫金額
    /// </summary>
    /// <param name="LowerMoney"></param>
    /// <returns></returns>
    public string MoneyToChinese(string LowerMoney)
    {
      string functionReturnValue = null;
      bool IsNegative = false; // 是否是負(fù)數(shù)
      if (LowerMoney.Trim().Substring(0, 1) == "-")
      {
        // 是負(fù)數(shù)則先轉(zhuǎn)為正數(shù)
        LowerMoney = LowerMoney.Trim().Remove(0, 1);
        IsNegative = true;
      }
      string strLower = null;
      string strUpart = null;
      string strUpper = null;
      int iTemp = 0;
      // 保留兩位小數(shù) 123.489→123.49  123.4→123.4
      LowerMoney = Math.Round(double.Parse(LowerMoney), 2).ToString();
      if (LowerMoney.IndexOf(".") > 0)
      {
        if (LowerMoney.IndexOf(".") == LowerMoney.Length - 2)
        {
          LowerMoney = LowerMoney + "0";
        }
      }
      else
      {
        LowerMoney = LowerMoney + ".00";
      }
      strLower = LowerMoney;
      iTemp = 1;
      strUpper = "";
      while (iTemp <= strLower.Length)
      {
        switch (strLower.Substring(strLower.Length - iTemp, 1))
        {
          case ".":
            strUpart = "圓";
            break;
          case "0":
            strUpart = "零";
            break;
          case "1":
            strUpart = "壹";
            break;
          case "2":
            strUpart = "貳";
            break;
          case "3":
            strUpart = "叁";
            break;
          case "4":
            strUpart = "肆";
            break;
          case "5":
            strUpart = "伍";
            break;
          case "6":
            strUpart = "陸";
            break;
          case "7":
            strUpart = "柒";
            break;
          case "8":
            strUpart = "捌";
            break;
          case "9":
            strUpart = "玖";
            break;
        }

        switch (iTemp)
        {
          case 1:
            strUpart = strUpart + "分";
            break;
          case 2:
            strUpart = strUpart + "角";
            break;
          case 3:
            strUpart = strUpart + "";
            break;
          case 4:
            strUpart = strUpart + "";
            break;
          case 5:
            strUpart = strUpart + "拾";
            break;
          case 6:
            strUpart = strUpart + "佰";
            break;
          case 7:
            strUpart = strUpart + "仟";
            break;
          case 8:
            strUpart = strUpart + "萬(wàn)";
            break;
          case 9:
            strUpart = strUpart + "拾";
            break;
          case 10:
            strUpart = strUpart + "佰";
            break;
          case 11:
            strUpart = strUpart + "仟";
            break;
          case 12:
            strUpart = strUpart + "億";
            break;
          case 13:
            strUpart = strUpart + "拾";
            break;
          case 14:
            strUpart = strUpart + "佰";
            break;
          case 15:
            strUpart = strUpart + "仟";
            break;
          case 16:
            strUpart = strUpart + "萬(wàn)";
            break;
          default:
            strUpart = strUpart + "";
            break;
        }

        strUpper = strUpart + strUpper;
        iTemp = iTemp + 1;
      }

      strUpper = strUpper.Replace("零拾", "零");
      strUpper = strUpper.Replace("零佰", "零");
      strUpper = strUpper.Replace("零仟", "零");
      strUpper = strUpper.Replace("零零零", "零");
      strUpper = strUpper.Replace("零零", "零");
      strUpper = strUpper.Replace("零角零分", "整");
      strUpper = strUpper.Replace("零分", "整");
      strUpper = strUpper.Replace("零角", "零");
      strUpper = strUpper.Replace("零億零萬(wàn)零圓", "億圓");
      strUpper = strUpper.Replace("億零萬(wàn)零圓", "億圓");
      strUpper = strUpper.Replace("零億零萬(wàn)", "億");
      strUpper = strUpper.Replace("零萬(wàn)零圓", "萬(wàn)圓");
      strUpper = strUpper.Replace("零億", "億");
      strUpper = strUpper.Replace("零萬(wàn)", "萬(wàn)");
      strUpper = strUpper.Replace("零圓", "圓");
      strUpper = strUpper.Replace("零零", "零");

      // 對(duì)壹圓以下的金額的處理
      if (strUpper.Substring(0, 1) == "圓")
      {
        strUpper = strUpper.Substring(1, strUpper.Length - 1);
      }
      if (strUpper.Substring(0, 1) == "零")
      {
        strUpper = strUpper.Substring(1, strUpper.Length - 1);
      }
      if (strUpper.Substring(0, 1) == "角")
      {
        strUpper = strUpper.Substring(1, strUpper.Length - 1);
      }
      if (strUpper.Substring(0, 1) == "分")
      {
        strUpper = strUpper.Substring(1, strUpper.Length - 1);
      }
      if (strUpper.Substring(0, 1) == "整")
      {
        strUpper = "零圓整";
      }
      functionReturnValue = strUpper;

      if (IsNegative == true)
      {
        return "負(fù)" + functionReturnValue;
      }
      else
      {
        return functionReturnValue;
      }
    }
  }

測(cè)試代碼:

    static void Main(string[] args)
    {
      Console.Write("請(qǐng)輸入要轉(zhuǎn)成大寫的數(shù)字:");
      string str = Console.ReadLine();
      Console.WriteLine("大寫:" + new MoneyConvertChinese().MoneyToChinese(str));
      Console.ReadLine();
    }

測(cè)試結(jié)果:

下面是其它網(wǎng)友的補(bǔ)充:

using System; 

namespace ConsoleApp 
{ 
/// <summary> 
/// 本類實(shí)現(xiàn)阿拉伯?dāng)?shù)字到大寫中文的轉(zhuǎn)換 
/// 該類沒(méi)有對(duì)非法數(shù)字進(jìn)行判別 
/// 請(qǐng)調(diào)用NumToChn方法 
/// </summary> 
public class NumFormat 
{ 
 public NumFormat() 
 { 
 // 
 // TODO: 在此處添加構(gòu)造函數(shù)邏輯 
 // 
 } 
 
 // 轉(zhuǎn)換數(shù)字 
 private char ToNum(char x) 
 { 
 string strChnNames="零一二三四五六七八九"; 
 string strNumNames="0123456789"; 
 return strChnNames[strNumNames.IndexOf(x)]; 
 } 
 
 // 轉(zhuǎn)換萬(wàn)以下整數(shù) 
 private string ChangeInt(string x) 
 { 
 string[] strArrayLevelNames=new string[4] {"","十","百","千"}; 
 string ret = ""; 
 int i; 
 for (i=x.Length-1;i>=0;i--) 
 if (x[i] == '0') 
  ret = ToNum(x[i]) + ret; 
 else 
  ret = ToNum(x[i]) + strArrayLevelNames[x.Length-1-i] + ret; 
 while ((i=ret.IndexOf("零零"))!=-1) 
 ret=ret.Remove(i, 1); 
 if (ret[ret.Length-1]=='零' && ret.Length>1) 
 ret=ret.Remove(ret.Length-1,1); 
 if (ret.Length>=2 && ret.Substring(0,2)=="一十") 
 ret=ret.Remove(0,1); 
 return ret; 
 } 

 // 轉(zhuǎn)換整數(shù) 
 private string ToInt(string x) 
 { 
 int len = x.Length; 
 string ret,temp; 
 if (len<=4) 
 ret = ChangeInt(x); 
 else if (len<=8) 
 { 
 ret = ChangeInt(x.Substring(0,len-4)) + "萬(wàn)"; 
 temp = ChangeInt(x.Substring(len-4,4)); 
 if (temp.IndexOf("千")==-1 && temp!="") 
  ret += "零" + temp; 
 else 
  ret += temp; 
 } 
 else 
 { 
 ret=ChangeInt(x.Substring(0,len-8)) + "億"; 
 temp=ChangeInt(x.Substring(len-8,4)); 
 if (temp.IndexOf("千")==-1 && temp!="") 
  ret += "零" + temp; 
 else 
  ret += temp; 
 ret += "萬(wàn)"; 
 temp = ChangeInt(x.Substring(len-4,4)); 
 if (temp.IndexOf("千")==-1 && temp!="") 
  ret += "零" + temp; 
 else 
  ret += temp; 
 } 
 int i; 
 if ((i=ret.IndexOf("零萬(wàn)"))!=-1) 
 ret = ret.Remove(i+1,1); 
 while ((i=ret.IndexOf("零零"))!=-1) 
 ret = ret.Remove(i,1); 
 if (ret[ret.Length-1]=='零' && ret.Length>1) 
 ret = ret.Remove(ret.Length-1,1); 
 return ret; 
 } 

 private string ToDecimal(string x) 
 { 
 string ret=""; 
 for (int i=0;i<x.Length;i++) 
 ret += ToNum(x[i]); 
 return ret; 
 } 

 public string NumToChn(string x) 
 { 
 if (x.Length==0) 
 return ""; 
 string ret=""; 
 if (x[0]=='-') 
 { 
 ret="負(fù)"; 
 x=x.Remove(0,1); 
 } 
 if (x[0].ToString()==".") 
 x="0"+x; 
 if (x[x.Length-1].ToString()==".") 
 x=x.Remove(x.Length-1,1); 
 if (x.IndexOf(".")>-1) 
 ret += ToInt(x.Substring(0,x.IndexOf(".")))+"點(diǎn)"+ToDecimal(x.Substring(x.IndexOf(".")+1)); 
 else 
 ret += ToInt(x); 
 return ret; 
 } 
} 
}

測(cè)試工程

using System; 

namespace ConsoleApp 
{ 
class MainClass 
{ 
 static void Main(string[] args) 
 { 
 /* 
 System.Console.WriteLine("Hello, The World!"); 
 
 System.Console.WriteLine("My Love!"); 

 ClassTest ct = new ClassTest(); 
   System.Console.WriteLine(ct.Get_Str()); 
 */ 
 
 /* 
 // 重載運(yùn)算符 
   MyVector v1 = new MyVector(5, 12); 
 MyVector v2 = new MyVector(4, 3); 
 MyVector v3 = new MyVector(); 
 v3 = v1 + v2; 
 System.Console.WriteLine("{0}測(cè)試一下", v3.Length); 
 */ 

 // 轉(zhuǎn)換成大寫數(shù)字 
 NumFormat nf = new NumFormat(); 
 string x; 
 while (true) 
 { 
 Console.Write("X="); 
 x = Console.ReadLine(); 
 if (x == "") break; 
 Console.WriteLine("{0}={1}", x, nf.NumToChn(x)); 
 } 
 } 
} 
} 

相關(guān)文章

  • C#實(shí)現(xiàn)異步日志記錄類的示例代碼

    C#實(shí)現(xiàn)異步日志記錄類的示例代碼

    這篇文章主要為大家詳細(xì)介紹了C#如何實(shí)現(xiàn)異步日志記錄類,從而方便下次使用,不用重復(fù)造輪子,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2023-11-11
  • Unity?UGUI的VerticalLayoutGroup垂直布局組件介紹使用

    Unity?UGUI的VerticalLayoutGroup垂直布局組件介紹使用

    這篇文章主要為大家介紹了Unity?UGUI的VerticalLayoutGroup垂直布局組件介紹使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 深入理解C#的數(shù)組

    深入理解C#的數(shù)組

    本篇文章主要介紹了C#的數(shù)組,數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),詳細(xì)的介紹了數(shù)組的聲明和訪問(wèn)等,有興趣的可以了解一下。
    2016-11-11
  • C#實(shí)現(xiàn)自定義雙擊事件

    C#實(shí)現(xiàn)自定義雙擊事件

    這篇文章主要介紹了C#實(shí)現(xiàn)自定義雙擊事件,需要的朋友可以參考下
    2014-08-08
  • c#動(dòng)態(tài)加載卸載DLL的方法

    c#動(dòng)態(tài)加載卸載DLL的方法

    這篇文章介紹了c#動(dòng)態(tài)加載卸載DLL的方法,有需要的朋友可以參考一下
    2013-11-11
  • c#的datatable轉(zhuǎn)list示例

    c#的datatable轉(zhuǎn)list示例

    這篇文章主要介紹了c#的datatable轉(zhuǎn)list示例,代碼中有注釋,需要的朋友可以參考下
    2014-04-04
  • C#中實(shí)現(xiàn)向數(shù)組中動(dòng)態(tài)添加元素

    C#中實(shí)現(xiàn)向數(shù)組中動(dòng)態(tài)添加元素

    這篇文章主要介紹了C#中實(shí)現(xiàn)向數(shù)組中動(dòng)態(tài)添加元素方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • C#實(shí)現(xiàn)發(fā)送手機(jī)驗(yàn)證碼功能

    C#實(shí)現(xiàn)發(fā)送手機(jī)驗(yàn)證碼功能

    之前基于c#實(shí)現(xiàn)手機(jī)發(fā)送驗(yàn)證碼功能很復(fù)雜,真正做起來(lái)也就那回事,不過(guò)就是一個(gè)post請(qǐng)求就可以實(shí)現(xiàn)的東西,今天小編把思路分享到腳本之家平臺(tái),供大家參考下
    2017-06-06
  • C#使用xsd文件驗(yàn)證XML格式是否正確的實(shí)現(xiàn)方法

    C#使用xsd文件驗(yàn)證XML格式是否正確的實(shí)現(xiàn)方法

    這篇文章主要介紹了C#使用xsd文件驗(yàn)證XML格式是否正確的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了C#針對(duì)xml文件的創(chuàng)建、驗(yàn)證相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • C#中設(shè)置textbox限制條件的方法

    C#中設(shè)置textbox限制條件的方法

    這篇文章主要介紹了C#中設(shè)置textbox限制條件的方法,可實(shí)現(xiàn)設(shè)置像數(shù)量、價(jià)格、金額等的textbox的限制條件,用戶只能輸入數(shù)字或小數(shù),是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-12-12

最新評(píng)論

曲阳县| 安国市| 湘阴县| 班玛县| 临潭县| 泰和县| 鹤山市| 丽江市| 扬中市| 双鸭山市| 台前县| 瓮安县| 宜昌市| 循化| 长岭县| 韩城市| 望城县| 宁阳县| 奉化市| 东方市| 徐汇区| 甘肃省| 孝义市| 陆川县| 南康市| 邹平县| 获嘉县| 江城| 伊通| 姜堰市| 扎兰屯市| 崇州市| 云南省| 海原县| 沾化县| 滕州市| 来安县| 安义县| 宜兴市| 玉树县| 若尔盖县|