数字到人民币转换(转)_.net数字到人民币转换(转)_构造函数_02代码


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;

            }


        }

    }