中文转数字

 

         private void button1_Click(object sender, EventArgs e)
        {
            cpCount ="二十万零二百五";
            MessageBox.Show(cpCount);
        }

        string _cpCount;

        public string cpCount
        {
            get { return _cpCount + ""; }

            set
            {
                string s = value;
                string ic="";
                int t=0;
                int tmax = 0;


                string zs = "00000000000000000000000000";

                string ss="零一二三四五六七八九";
                string tt = "十百千万十百千亿";
                if (tt.IndexOf(s[0]) != -1) s = "一" + s;
               
                for (int i=s.Length-1;i>=0;i--)
                {
                    char c=s[i];

                    if (tt.IndexOf(c) >-1)
                    {
                        t = tt.IndexOf(c) + 1;
                        tmax = t > tmax ? t : tmax;
                    }
                    else
                    {
                        int d = ss.IndexOf(c);
                        if (d == 0) continue;
                        if (d == -1) { _cpCount="数据有误!"; return; }
                        int p = tmax > t ? t + tmax : t;
                        ic =d+zs.Substring(0, p-ic.Length)+ic;
               
                    }

                }

                _cpCount = ic.ToString();
            }
        }

原文地址:https://www.cnblogs.com/dashi/p/4034746.html