现在一字符串。。20.00000需要转换成人民币的格式

解决方案 »

  1.   

    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;
                }        }
        }
      

  2.   

    http://blog.csdn.net/honkerhero/archive/2007/02/02/1500684.aspx
      

  3.   

    谢谢楼上两位,,我不是要大小写是要带人民币符号我用string.Format("{0:c}","20.000");
    它给我的还是20.000
      

  4.   

    double a=20.00000;
    a.ToString("C");-----> NT$20.00
      

  5.   

    自己在前面加一个符号就行了.,
    string.Format("¥{0:C}","20.000")