using System;
using System.Windows.Forms;namespace WindowsApplication1
{
/// <summary>
/// ConvertInt 的摘要说明。
/// </summary>
public class ConvertInt
{
public enum Money{RMB,UKD,USD};
public ConvertInt()
{
//
// TODO: 在此处添加构造函数逻辑
//
} public static void FloatTransform(string strNum,ref string result)
{
string strInt;
string strFloat;
strInt=strNum.Substring(0,strNum.IndexOf(".",0));//整数部分的值
strFloat=strNum.Substring((strNum.IndexOf(".",0)+1),(strNum.Length-strNum.IndexOf(".",0)-1));//小数部分的值
//MessageBox.Show(strInt);
//MessageBox.Show(strFloat);
//return;
int numLen=strInt.Length;
string dx="零壹贰叁肆伍陆柒捌玖";
string ws="分角元拾佰仟万拾佰仟亿拾佰仟";
//MessageBox.Show(ws.Length.ToString());
result=null;
int i=0,w=0;
int q=0;
bool ling=true;
//计算整数的大写!
while(i<numLen)
{
if(strInt.Substring(i,1)!="0")
{
//MessageBox.Show(strNum.Substring(i,1));
result=result+dx.Substring(Convert.ToInt32(strInt.Substring(i,1)),1);
result=result+ws.Substring((numLen-i)+1,1);
ling=false;
i++;
}
else if(ling==false&&strInt.Substring(i,1)=="0")
{
if((numLen-i+1)>10)//判断是否过亿
{
w=0;
for(q=11;q<(numLen-i+1);q++)
{
w=w+Convert.ToInt32(strInt.Substring(numLen-q+1,1));
}
if(w==0)
{
result=result+"亿";
i=numLen-9;
}
else
{
result=result+"零";
i=i+1;
ling=true;
}
}
else if((numLen-i+1)>6)//判断是否是万以上
{
w=0;
for(q=1;q<(numLen-i+1);q++)
{
w=w+Convert.ToInt32(strInt.Substring(numLen-q,1));
}
if(w==0)
{
result=result+"整";
i=numLen+1;
}
else
{
result=result+"零";
i=i+1;
ling=true;
}
} else if((numLen-i+1)>3)
{
w=0;
for(q=1;q<(numLen-i+1);q++)
{
w=w+Convert.ToInt32(strInt.Substring(numLen-q,1));
}
if(w==0)
{
result=result+"整";
i=numLen+1;
}
else
{
result=result+"零";
i=i+1;
ling=true;
}
}
else if((numLen-i+1)>0)
{
w=0;
for(q=1;q<(numLen-i+1);q++)
{
w=w+Convert.ToInt32(strInt.Substring(numLen-q,1));
}
if(w==0)
{
result=result+"整";
i=numLen+1;
}
else
{
result=result+"零";
i=i+1;
ling=true;
}
}
}
else if(strInt.Substring(i,1)=="0"&&ling==true)
{
i=i+1;
} }
//计算小数部分的大写!

int numLenFlt=strFloat.Length;
if(strFloat.Substring(0,1)=="0"&&strFloat.Substring(1,1)=="0")
{
result=result+"整";
}
else if(strFloat.Substring(0,1)!="0"&&strFloat.Substring(1,1)=="0")
{
result=result+dx.Substring(Convert.ToInt32(strFloat.Substring(0,1)),1)+"角";
}
else if(strFloat.Substring(0,1)=="0"&&strFloat.Substring(1,1)!="0")
{
result=result+dx.Substring(Convert.ToInt32(strFloat.Substring(1,1)),1)+"分";
}
else if(strFloat.Substring(0,1)!="0"&&strFloat.Substring(1,1)!="0")
{
result=result+dx.Substring(Convert.ToInt32(strFloat.Substring(0,1)),1)+"角"+dx.Substring(Convert.ToInt32(strFloat.Substring(1,1)),1)+"分";
}

}
public static void DateTransform(DateTime dt,ref string year,ref string month,ref string day)
{
string dx="零壹贰叁肆伍陆柒捌玖";
year=null;
month=null;
day=null;

for(int i=0;i<4;i++)
{
year=year+dx.Substring(Convert.ToInt32(dt.Year.ToString().Substring(i,1)),1);
}
if(dt.Day.ToString().Length<2)
{
month="零"+dx.Substring(dt.Month,1);
}
else
{
for(int i=0;i<2;i++)
{
month=month+dx.Substring(Convert.ToInt32(dt.Month.ToString().Substring(i,1)),1);
}
}
if(dt.Day.ToString().Length<2)
{
day="零"+dx.Substring(Convert.ToInt32(dt.Day),1);
}
else
{
for(int i=0;i<2;i++)
{
day=day+dx.Substring(Convert.ToInt32(dt.Day.ToString().Substring(i,1)),1);
}
}
} }
}

解决方案 »

  1.   

    代码如下:
    [STAThread]
    static void Main() 
    {
    Application.Run(new Form1());
    } private void Form1_Load(object sender, System.EventArgs e)
    {
    this.textBox1.Text="12,789,24.01";
    this.textBox2.Text="";
    } private void button1_Click(object sender, System.EventArgs e)
    {
    string s=this.textBox1.Text.Trim();
    s=s.Replace(",","");
    //有无 " ."
    if(s.IndexOf(".")==-1)
    {
    s=s+".00";
    }

    string []a=s.Split('.');
    //存放结果
    char []m=a[0].ToCharArray();
    char []n=a[1].ToCharArray(); string box=dowork(m,n);
    this.textBox2.Text=box+"整";

         }
    private string dowork(char [] s1,char []s2) { string [] R1=new string[]{"仟","佰","拾","元"};//长度为4
    string [] R2=new string[]{"角","分"};//长度为2
    //处理整数部分
    int len=s1.Length;
    int len2=s2.Length; string box="";
    string box1="";
    string box2="";
    string box3="";


    char []a=null;
    char []b=null;
    char []c=null; //是否过亿
    if(len>=9)
    {
    a=new char[len-8];
    b=new char[4];
    c=new char[4];
        Array.Copy(s1,0,a,0,len-8);
       Array.Copy(s1,len-8,b,0,4);
     Array.Copy(s1,len-4,c,0,4);

    a=rep(a,len-8);
    b=rep(b,4);
    c=rep(c,4); } //是否过万
       if(len>=5 &&len<=8)
    {

       b=new char[len-4];
       c=new char[4];
       
       Array.Copy(s1,0,b,0,len-4);
       Array.Copy(s1,len-4,c,0,4);
       b=rep(b,len-4);
       c=rep(c,4);
     
                    
    }
             //在万以内
    if(len<=4)

      c=new char[len];
     Array.Copy(s1,0,c,0,len);
    c=rep(c,len);

    }
    if(c!=null && c.Length>0)
    {
    //加单位
    int j=3;
    for(int i=c.Length-1;i>=0;i--) {
    if(c.Length==1&&c[c.Length-1]=='零')
    {
                            break;
    } if(c[i]!='零')
    {
    box1=c[i].ToString()+R1[j]+box1;

    }
    else
    {
                             box1=R1[j]+box1;
    }
    j--;
    }

    }
    if(b!=null &&b.Length>0)
    {
    //加单位
    int j=3;
    for(int i=b.Length-1;i>=0;i--) {
    if(b[i]!='零')
    {
    if(i==b.Length-1)
    {
                             box2=b[i].ToString()+box2;
    }
    else
    {
    box2=b[i].ToString()+R1[j]+box2;
    }

    }

    j--;
    }
    box2=box2+"万"; }
    if(a!=null && a.Length>0)
    {
    //加单位
    int j=3;
    for(int i=a.Length-1;i>=0;i--) {
    if(a[i]!='零')
    {
    if(i==a.Length-1)
    {
                                   box3=a[i].ToString()+box3;
    }
    else
    {
    box3=a[i].ToString()+R1[j]+box3;
    }

    }
    j--;
    }
    box3=box3+"亿"; }
     

              //处理小数数部分
    //替换数字

    s2=rep(s2,len2);
    string box4="";
    for(int i=0;i<len2;i++) {
    if(i<=1)
    {
    box4=box4 +s2[i].ToString()+R2[i];
    }

    }
                  box=box3+box2+box1+box4;
    return box;
    }//dowork
    private char [] rep(char []s1,int len)
    {
    //替换数字
    for(int i=0;i<len;i++)
    {
    switch(s1[i])
    {
    case '0':
    s1[i]='零';
    break;
    case '1':
    s1[i]='壹';
    break;
    case '2':
    s1[i]='贰';
    break;
    case '3':
    s1[i]='叁';
    break;
    case '4':
    s1[i]='肆';
    break;
    case '5':
    s1[i]='伍';
    break;
    case '6':
    s1[i]='陆';
    break;
    case '7':
    s1[i]='柒';
    break;
    case '8':
    s1[i]='捌';
    break;
    case '9':
    s1[i]='玖';
    break;
               
    } }//for
    return s1;


    } }
    }