将大写放到array,然后遍历小写,按一定顺序取出即可

解决方案 »

  1.   

    using System;namespace TMS
    {
     /// <summary>
     /// AMT_GB2312 的摘要说明。
     /// </summary>
     public class AMT_GB2312
     {
      public AMT_GB2312()
      {
       //
       // TODO: 在此处添加构造函数逻辑
       //
      }
      public string ConvertToGB2312(double amount)
      {
       string m_str,m_int,m_dec;
       int m_pos,m_len;   m_str = System.Convert.ToString(amount);
       m_len = m_str.Length;
       m_pos = m_str.IndexOf('.',0);
       m_dec = "00";
       if (m_pos ==-1)
        m_int = m_str;
       else
       {
        m_int = m_str.Substring(0,m_pos);
        m_dec = m_str.Substring(m_pos+1 ,m_len -m_pos-1);
        m_dec = m_dec.PadRight(2,'0');
        m_dec = m_dec.Substring(0,2);
       }   m_int = m_int.PadLeft(12,'0');   m_str = "";
       if (m_int.Substring(0,4) != "0000")
       {
        m_str += ConvertTo9999(m_int.Substring(0,4)) + "亿";
       }   if (m_int.Substring(4,4) != "0000")
       {
        m_str += ConvertTo9999(m_int.Substring(4,4)) + "万";
       }
       if (m_int.Substring(8,4) != "0000")
       {
        m_str += ConvertTo9999(m_int.Substring(8,4)) + "圆";
       }   if (m_dec !="00")
       {
        m_str += ConvertDec(m_dec);
       }
       else
       {
        m_str += "整";
       }   return m_str;  }
      private string ConvertTo9999(string m_part)
      {
       string m_str;
       int m_val,m_tmp;
       
       m_str = "";
       m_val = (int)System.Convert.ToInt32(m_part,10);
       m_tmp = (int)m_val/1000;
       switch(m_tmp)
       {
        case 1:
         m_str = "壹仟";
         break;
        case 2:
         m_str = "贰仟";
         break;
        case 3:
         m_str = "叁仟";
         break;
        case 4:
         m_str = "肆仟";
         break;
        case 5:
         m_str = "伍仟";
         break;
        case 6:
         m_str = "陆仟";
         break;
        case 7:
         m_str = "柒仟";
         break;
        case 8:
         m_str = "捌仟";
         break;
        case 9:
         m_str = "玖仟";
         break;
        default:
         break;
       }   m_val = m_val -(m_tmp*1000);
       m_tmp = (int)m_val/100;   switch(m_tmp)
       {
        case 1:
         m_str += "壹佰";
         break;
        case 2:
         m_str += "贰佰";
         break;
        case 3:
         m_str += "叁佰";
         break;
        case 4:
         m_str += "肆佰";
         break;
        case 5:
         m_str += "伍佰";
         break;
        case 6:
         m_str += "陆佰";
         break;
        case 7:
         m_str += "柒佰";
         break;
        case 8:
         m_str += "捌佰";
         break;
        case 9:
         m_str += "玖佰";
         break;
        default:
         break;
       }
       m_val = m_val -(m_tmp*100);
       m_tmp = (int)m_val/10;   switch(m_tmp)
       {
        case 1:
         m_str += "壹拾";
         break;
        case 2:
         m_str += "贰拾";
         break;
        case 3:
         m_str += "叁拾";
         break;
        case 4:
         m_str += "肆拾";
         break;
        case 5:
         m_str += "伍拾";
         break;
        case 6:
         m_str += "陆拾";
         break;
        case 7:
         m_str += "柒拾";
         break;
        case 8:
         m_str += "捌拾";
         break;
        case 9:
         m_str += "玖拾";
         break;
        default:
         break;
       }   m_val = m_val -(m_tmp*10);
       m_tmp = (int)m_val%10;   switch(m_tmp)
       {
        case 1:
         m_str += "壹";
         break;
        case 2:
         m_str += "贰";
         break;
        case 3:
         m_str += "叁";
         break;
        case 4:
         m_str += "肆";
         break;
        case 5:
         m_str += "伍";
         break;
        case 6:
         m_str += "陆";
         break;
        case 7:
         m_str += "柒";
         break;
        case 8:
         m_str += "捌";
         break;
        case 9:
         m_str += "玖";
         break;
        default:
         break;
       }   return m_str;  }
      private string ConvertDec(string m_part)
      {
       string m_str;
       int m_val;   m_str = "";
       m_val = (int)System.Convert.ToInt32(m_part,10)/10;
       switch(m_val)
       {
        case  1:
         m_str = "壹角";
         break;    case  2:
         m_str = "贰角";
         break;
        case  3:
         m_str = "叁角";
         break;
        case  4:
         m_str = "肆角";
         break;
        case  5:
         m_str = "伍角";
         break;
        case  6:
         m_str = "陆角";
         break;
        case  7:
         m_str = "柒角";
         break;    case  8:
         m_str = "捌角";
         break;
        case  9:
         m_str = "玖角";
         break;
        default:
         break;   }   m_val = (int)System.Convert.ToInt32(m_part,10)%10;   switch(m_val)
       {
        case  1:
         m_str += "壹分";
         break;    case  2:
         m_str += "贰分";
         break;
        case  3:
         m_str += "叁分";
         break;
        case  4:
         m_str += "肆分";
         break;
        case  5:
         m_str += "伍分";
         break;
        case  6:
         m_str += "陆分";
         break;
        case  7:
         m_str += "柒分";
         break;    case  8:
         m_str += "捌分";
         break;
        case  9:
         m_str += "玖分";
         break;
        default:
         break;   }
       return m_str;
      }
     }
    }
      

  2.   

    //加到类的定义部分
    private static string[] cstr={"零","壹","贰","叁","肆", "伍", "陆","柒","捌","玖"};
    private  static string[] wstr={"","","拾","佰","仟","萬","拾","佰","仟","億","拾","佰","仟"};
    //数字必须在12位整数以内的字符串
    //调用方式如:Label1.Text=ConvertInt("数字字符串");public string ConvertInt(string str)
    {
    int len=str.Length;
        int i;
    string tmpstr,rstr;
    rstr="";
    for(i=1;i<=len;i++)
    {
    tmpstr=str.Substring(len-i,1);
    rstr=string.Concat(cstr[Int32.Parse(tmpstr)]+wstr[i],rstr);
    }
    rstr=rstr.Replace("拾零","拾");
    rstr=rstr.Replace("零拾","零");
                rstr=rstr.Replace("零佰","零");
                rstr=rstr.Replace("零仟","零");
    rstr=rstr.Replace("零萬","萬");
    for(i=1;i<=6;i++)
    rstr=rstr.Replace("零零","零");
    rstr=rstr.Replace("零萬","零");
    rstr=rstr.Replace("零億","億");
    rstr=rstr.Replace("零零","零"); 
                            rstr+="圆整";
           return rstr;
    }
      

  3.   

    public string RMB(string m)
    {
    string DX=m.ToString();
    int XSD=DX.IndexOf(".",0);
    string XP;
    if(XSD==-1)
    {
    XP=RY(DX);
    return XP;    
    }
    else
    {
    string RX="";
    string DX1=DX.Substring(0,XSD);
    XP=RY(DX1);
    string DX2=DX.Substring(XSD,DX.Length-XSD).Substring(1);
    if(DX2.Length==1)
    if (DX2[0]!='0')
    RX=HZ(DX2[0])+"角零分";
    if(DX2.Length==2)
    {  
    if(DX2[1]!='0'&& DX2[0]!='0')
    RX=HZ(DX2[0])+"角"+HZ(DX2[1])+"分";
    else
    if(DX2[0]=='0')
    RX=HZ(DX2[1])+"分";
    }
    XP=XP+RX;
    return XP;
    }
    }
    public string RY(string DX)
    {
    string R="";
    int l=DX.Length;
    if(DX=="0") return R;
    int b=0;
    for(int i=0;i<DX.Length;i++)
    {
    int  m=DX.Length-i;
    R=R+HZ(DX[i]);
    if(b==0 && DX[i]=='0'&& m!=5 && m!=1 && i<DX.Length-1)
    {
    bool p=true;
    for(int k=i+1;k<DX.Length;k++)
    {
    if(DX[k]=='0') p=false; 
    }
    if(p==true)
    {
    R=R+"零";
    b=1;
    }
    }
    if(m==8 && DX[i]!='0') R=R+"仟";
    if(m==7 && DX[i]!='0') R=R+"佰";
    if(m==6 && DX[i]!='0') R=R+"拾";
    if(m==5 ) R=R+"万";
    if(m==4 && DX[i]!='0') R=R+"仟";
    if(m==3 && DX[i]!='0') R=R+"佰";
    if(m==2 && DX[i]!='0') R=R+"拾";
    if(m==1) R=R+"元";
    }
    return R;
    } public string HZ(char num)
    {
    switch(num)
    {
    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 "零";
    }
    }