数字到人民币转换(转)

来源:互联网 发布:家政o2o源码 编辑:程序博客网 时间:2024/06/05 01:26
public class NumToRmb
    {

        
public ArrayList chLen = new ArrayList();
        
public ArrayList ToRmb = new ArrayList();
        
//public string[] 位数=new string[]("个","拾","百","千","万","拾万","百万","千万","亿");
        public NumToRmb()
        {

            
//
            
// TODO: 在此处添加构造函数逻辑
            
//
        }
        
public string conversion(string sum)//传来的数字(字符型的)564122
        {
            
string weishu = "";
            
string s = "";
            chLen.Add(
"元整");
            chLen.Add(
"");
            chLen.Add(
"");
            chLen.Add(
"");
            chLen.Add(
"");
            chLen.Add(
"拾万");
            chLen.Add(
"佰万");
            chLen.Add(
"仟万");
            chLen.Add(
"亿");
            ToRmb.Add(
"");
            ToRmb.Add(
"");
            ToRmb.Add(
"");
            ToRmb.Add(
"");
            ToRmb.Add(
"");
            ToRmb.Add(
"");
            ToRmb.Add(
"");
            ToRmb.Add(
"");
            ToRmb.Add(
"");
            ToRmb.Add(
"");
            
//             string s=(string)位数[0];
            int d = sum.Length;//一共有多少位
            if (d < 6)
            {
                
char[] f = sum.ToCharArray(0, d);
                
for (int i = 0; i < d; i++)
                {
                    Object dd 
= f.GetValue(i);
                    weishu 
= dd.ToString();//实际数字
                    int ddd = Convert.ToInt16(weishu);
                    weishu 
= (string)ToRmb[ddd];
                    s 
+= weishu + chLen[d - 1 - i];
                }
                
return s;
            }
            
else
            {
                
char[] f = sum.ToCharArray(0, d);
                
for (int i = 0; i < d; i++)
                {
                    
if (d - i < 5)
                    {
                        Object dd 
= f.GetValue(i);
                        weishu 
= dd.ToString();//实际数字
                        int ddd = Convert.ToInt16(weishu);
                        weishu 
= (string)ToRmb[ddd];

                        s 
+= weishu + chLen[d - 1 - i];
                    }
                    
else
                    {

                        Object dd 
= f.GetValue(i);
                        weishu 
= dd.ToString();//实际数字
                        int ddd = Convert.ToInt16(weishu);
                        weishu 
= (string)ToRmb[ddd];
                        
if (d - i == 5)
                        {
                            s 
+= weishu + "";
                        }
                        
else
                        {
                            s 
+= weishu + chLen[d - 5];
                        }
                    }
                }
                
return s;
            }

        }
    }
 
原创粉丝点击