|            
将人民币的数字表示转化成大写表示(C#版)      
   
  实在没有什么好讲的,就是一个方法,大家拿去用吧
  using System;
  namespace Test.Com {  /// <summary>  /// 功能:字符串处理函数集  /// </summary>  public class DealString  {   #region 私有成员   /// <summary>   /// 输入字符串   /// </summary>   private string inputString=null;   /// <summary>   /// 输出字符串   /// </summary>   private string outString=null;   /// <summary>   /// 提示信息   /// </summary>   private string noteMessage=null;   #endregion
    #region 公共属性   /// <summary>   /// 输入字符串   /// </summary>   public string InputString   {    get{return inputString;}    set{inputString=value;}   }   /// <summary>   /// 输出字符串   /// </summary>   public string OutString   {    get{return outString;}    set{outString=value;}   }   /// <summary>   /// 提示信息   /// </summary>   public string NoteMessage   {    get{return noteMessage;}    set{noteMessage=value;}   }   #endregion      #region 构造函数   public DealString()   {    //    // TODO: 在此处添加构造函数逻辑    //   }   #endregion
    #region 公共方法   public void ConvertToChineseNum()   {    string numList="零壹贰叁肆伍陆柒捌玖";    string rmbList = "分角元拾佰仟万拾佰仟亿拾佰仟万";    double number=0;    string tempOutString=null;
     try    {     number=double.Parse(this.inputString);    }    catch    {     this.noteMessage="传入参数非数字!";     return;    }        if(number>9999999999999.99)     this.noteMessage="超出范围的人民币值";
     //将小数转化为整数字符串    string tempNumberString=Convert.ToInt64(number*100).ToString();    int tempNmberLength=tempNumberString.Length;    int i=0;    while(i<tempNmberLength)    {     int oneNumber=Int32.Parse(tempNumberString.Substring(i,1));     string oneNumberChar=numList.Substring(oneNumber,1);     string oneNumberUnit=rmbList.Substring(tempNmberLength-i-1,1);     if(oneNumberChar!="零")      tempOutString+=oneNumberChar+oneNumberUnit;     else     {      if(oneNumberUnit=="亿"||oneNumberUnit=="万"||oneNumberUnit=="元"||oneNumberUnit=="零")      {       while (tempOutString.EndsWith("零"))       {        tempOutString=tempOutString.Substring(0,tempOutString.Length-1);       }
       }      if(oneNumberUnit=="亿"||(oneNumberUnit=="万"&&!tempOutString.EndsWith("亿"))||oneNumberUnit=="元")      {       tempOutString+=oneNumberUnit;      }      else      {       bool tempEnd=tempOutString.EndsWith("亿");       bool zeroEnd=tempOutString.EndsWith("零");       if(tempOutString.Length>1)       {        bool zeroStart=tempOutString.Substring(tempOutString.Length-2,2).StartsWith("零");        if(!zeroEnd&&(zeroStart||!tempEnd))         tempOutString+=oneNumberChar;       }       else       {        if(!zeroEnd&&!tempEnd)         tempOutString+=oneNumberChar;       }      }     }     i+=1;    }
     while (tempOutString.EndsWith("零"))    {     tempOutString=tempOutString.Substring(0,tempOutString.Length-1);    }
     while(tempOutString.EndsWith("元"))    {     tempOutString=tempOutString+"整";    }
     this.outString=tempOutString;
        }   #endregion  } }  
 |