前面textbox框 在textchange时触发,判断
把大写汉字做枚举 列出

解决方案 »

  1.   

    你google一下就行啦.        /// <summary>
            /// 货币
            /// </summary>
            public class Currency
            {
                /// <summary>
                /// 把double数转换为大写的货币数
                /// </summary>
                /// <param name="pJe"></param>
                /// <returns></returns>
                public static string DoubleToRmbZwdx(double pJe)
                {
                    string[] strArray = new string[] { "分", "角", "元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾" };
                    string[] strArray2 = new string[] { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
                    string str = "";
                    string str2 = "          " + ((pJe < 0.0) ? (0.0 - pJe) : pJe).ToString("f2");//"f2"为4舍5入到两位小数
                    str2 = str2.Substring(str2.Length - 13);
                    str2 = str2.Substring(0, 10) + str2.Substring(11);
                    bool flag = false;
                    bool flag2 = false;
                    for (int i = 0; i < str2.Length; i++)
                    {
                        string str3 = str2.Substring((str2.Length - i) - 1, 1);
                        if (str3 == " ")
                        {
                            break;
                        }
                        int index = System.Convert.ToInt32(str3) - System.Convert.ToInt32("0");
                        if (index != 0)
                        {
                            if (flag && !flag2)
                            {
                                str = "零" + str;
                            }
                            str = strArray[i] + str;
                            str = strArray2[index] + str;
                            flag = false;
                            flag2 = false;
                            continue;
                        }
                        switch (i)
                        {
                            case 0:
                            {
                                if (flag && !flag2)
                                {
                                    str = "零" + str;
                                }
                                str = "整" + str;
                                flag2 = true;
                                continue;
                            }
                            case 2:
                            {
                                if ((flag || (str3 == "0")) && !flag2)
                                {
                                    str = "零" + str;
                                }
                                str = "元" + str;
                                flag2 = true;
                                continue;
                            }
                            case 6:
                            {
                                if ((flag || (str3 == "0")) && !flag2)
                                {
                                    str = "零" + str;
                                }
                                str = "万" + str;
                                flag2 = true;
                                continue;
                            }
                            case 10:
                            {
                                if ((flag || (str3 == "0")) && !flag2)
                                {
                                    str = "零" + str;
                                }
                                if (flag2)
                                {
                                    str = str.Substring(2);
                                }
                                str = "亿" + str;
                                flag2 = true;
                                continue;
                            }
                        }
                        flag = true;
                    }                //if (Convert.ToDouble(System.Math.Abs(pJe).ToString("f2")) < 1.0)
                    //{
                    //    str = "零" + str;
                    //}                if (pJe < 0.0)
                    {
                        return ("负" + str);
                    }
                    
                    if (pJe == 0.0)
                    {
                        return "";
                    }
                    return str;
                }
            }
      

  2.   

    以前有人问过这问题了啊!最好的办法是:用Replace方法,具体不记得了.
    string s=source.Replace("1","壹");
      

  3.   

    在这个地方用枚举
    前台页面
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="Admin_test" %><%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        Namespace="System.Web.UI" TagPrefix="asp" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /></div>       
        </form>
    </body>
    </html>后台页面using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class Admin_test : System.Web.UI.Page
    {
        enum MyEnum { 零=0,壹=1,贰=2};
        protected void Page_Load(object sender, EventArgs e)
        {    }
        protected void Button1_Click(object sender, EventArgs e)
        {
            MyEnum q = new MyEnum();
            MyEnum[] c = (MyEnum[])Enum.GetValues(q.GetType());//这个地方有待改进,大家给点意见
            int i = System.Convert.ToInt32(this.TextBox1.Text);
            this.TextBox2.Text =  c[i].ToString();    }
     }
      

  4.   

    mohugomohu方法                        不错~简单明了
      

  5.   


     string[] s = new string[10];    s[0] = "零";
        s[1] = "壹";
        s[2] = "贰";
        s[3] = "叁";
        s[4] = "肆";
        s[5] = "伍";
        s[6] = "陆";
        s[7] = "柒";
        s[8] = "捌";
        s[9] = "玖";    double m = 65899654.23;    string temp = m.ToString("0仟0佰0拾0亿0仟0佰0拾0万0仟0佰0拾0元.0角0分");    for (int i = 0; i < s.Length; i++)
        {
          temp = temp.Replace(i.ToString(), s[i]);
        }    temp = temp.Replace(".","");
        Response.Write(temp);    //result: 零仟零佰零拾零亿陆仟伍佰捌拾玖万玖仟陆佰伍拾肆元贰角叁分 
      

  6.   

     public enum u7u
        {
            零=0,
            壹=1,
            贰=2,
            叁=3,
            肆=4,
            伍=5,
            陆=6,
            柒=7,
            捌=8,
            玖=9,
        }
    ((u7u)1).ToString()
      

  7.   

    // 例如:(new Money(200)).ToString() == "贰佰元"
    namespace Skyiv.Util
    {
      using System.Text;
      class Test
      {
        static void Main()
        {
          for (;;)
          {
            System.Console.Write("金额: ");
            string  s = System.Console.ReadLine();
            decimal m;
            try   { m = decimal.Parse(s); }
            catch { break; }
            System.Console.WriteLine("大写: " + new Money(m));
          }
        }
      }
      // 该类重载的 ToString() 方法返回的是大写金额字符串
      class Money
      {
        public string Yuan  = "元";                        // “元”,可以改为“圆”、“卢布”之类
        public string Jiao  = "角";                        // “角”,可以改为“拾”
        public string Fen   = "分";                        // “分”,可以改为“美分”之类
        static string Digit = "零壹贰叁肆伍陆柒捌玖";      // 大写数字
        bool   isAllZero    = true;                        // 片段内是否全零
        bool   isPreZero    = true;                        // 低一位数字是否是零
        bool   Overflow     = false;                       // 溢出标志
        long   money100;                                   // 金额*100,即以“分”为单位的金额
        long   value;                                      // money100的绝对值
        StringBuilder sb    = new StringBuilder();         // 大写金额字符串,逆序
        // 只读属性: "零元"
        public string ZeroString
        {
          get { return Digit[0] + Yuan; }
        }
        // 构造函数
        public Money(decimal money)
        {
          try   { money100 = (long)(money * 100m); }
          catch { Overflow = true; }
          if (money100 == long.MinValue) Overflow = true;
        }
        // 重载 ToString() 方法,返回大写金额字符串
        public override string ToString()
        {
          if (Overflow) return "金额超出范围";
          if (money100 == 0) return ZeroString;
          string [] Unit = { Yuan, "万", "亿", "万", "亿亿" };
          value = System.Math.Abs(money100);
          ParseSection(true);
          for (int i = 0; i < Unit.Length && value > 0; i++)
          {
            if (isPreZero && !isAllZero) sb.Append(Digit[0]);
            if (i == 4 && sb.ToString().EndsWith(Unit[2]))
              sb.Remove(sb.Length - Unit[2].Length, Unit[2].Length);
            sb.Append(Unit[i]);
            ParseSection(false);
            if ((i % 2) == 1 && isAllZero)
              sb.Remove(sb.Length - Unit[i].Length, Unit[i].Length);
          }
          if (money100 < 0) sb.Append("负");
          return Reverse();
        }
        // 解析“片段”: “角分(2位)”或“万以内的一段(4位)”
        void ParseSection(bool isJiaoFen)
        {
          string [] Unit = isJiaoFen ?
            new string [] { Fen, Jiao } :
            new string [] { "", "拾", "佰", "仟" };
          isAllZero = true;
          for (int i = 0; i < Unit.Length && value > 0; i++)
          {
            int d = (int)(value % 10);
            if (d != 0)
            {
              if (isPreZero && !isAllZero) sb.Append(Digit[0]);
              sb.AppendFormat("{0}{1}", Unit[i], Digit[d]);
              isAllZero = false;
            }
            isPreZero = (d == 0);
            value /= 10;
          }
        }
        // 反转字符串
        string Reverse()
        {
          StringBuilder sbReversed = new StringBuilder();
          for (int i = sb.Length - 1; i >= 0; i--)
            sbReversed.Append(sb[i]);
          return sbReversed.ToString();
        }
      }
    }
      

  8.   

    不过这个转大写金额的问题经常有人问起,很经典的个问题,如果微软官方库加上这个就好了,最好是 IFormatProvider 接口形式的。还有转农历,也加上。
      

  9.   

    在xxoo2007基础上完善了下:
    private string DoubleToRmb(Double number)
            {
                string[] s = new string[10];            s[0] = "零";
                s[1] = "壹";
                s[2] = "贰";
                s[3] = "叁";
                s[4] = "肆";
                s[5] = "伍";
                s[6] = "陆";
                s[7] = "柒";
                s[8] = "捌";
                s[9] = "玖";            double m = 65899654.23;
                m = number;            string temp = m.ToString("0仟0佰0拾0亿0仟0佰0拾0万0仟0佰0拾0元.0角0分");            for (int i = 0; i < s.Length; i++)
                {
                    temp = temp.Replace(i.ToString(), s[i]);
                }            temp = temp.Replace(".", "");
                //去除多余的前导字符
                while (true)
                {
                    int i = temp.IndexOf("零");
                    if (i == 0)
                        temp = temp.Substring(2, temp.Length - 2);
                    else
                        break;
                }            return temp;
            }
            //result:陆仟伍佰捌拾玖万玖仟陆佰伍拾肆元贰角叁分
      

  10.   

    楼上的有缺陷,还是wuyi8808完善,虽然复杂了些
      

  11.   

    10^0         一
    10^1         十
    10^2         百
    10^3         千
    10^4         万
    10^5         十万
    10^6         百万
    10^7         千万
    10^8         亿
    10^9         十亿(吉)
    10^10         百亿
    10^11         千亿
    10^12         兆(万亿)
    10^13         十兆
    10^14         百兆
    10^15         千兆(拍)
    10^16         京
    10^17         十京
    10^18         百京(艾)
    10^19         千京
    10^20         垓
    10^21         十垓(泽)
    10^22         百垓
    10^23         千垓
    10^24         秭(尧)
    10^25         十秭
    10^26         百秭
    10^27         千秭
    10^28         穰
    10^29         十穰
    10^30         百穰
    10^31         千穰
    10^32         沟
    10^33         十沟
    10^34         百沟
    10^35         千沟
    10^36         涧
    10^37         十涧
    10^38         百涧
    10^39         千涧
    10^40         正
    10^41         十正
    10^42         百正
    10^43         千正
    10^44         载
    10^45         十载
    10^46         百载
    10^47         千载
    10^48         极
    10^49         十极
    10^50         百极
    10^51         千极
    10^52         恒河沙
    10^53         十恒河沙
    10^54         百恒河沙
    10^55         千恒河沙
    10^56         阿僧祇
    10^57         十阿僧祇
    10^58         百阿僧祇
    10^59         千阿僧祇
    10^60         那由他
    10^61         十那由他
    10^62         百那由他
    10^63         千那由他
    10^64         不可思议
    10^65         十不可思议
    10^66         百不可思议
    10^67         千不可思议
    10^68         无量大数
    10^69         十无量大数
    10^70         百无量大数
    10^71         千无量大数
    10^72         Espana
    10^73         十Espana
    10^74         百Espana
    10^75         千Espana
    10^76         
    10^77         
    10^78         
    10^79         
    10^80         
    10^81         
    ......         ......
    10^100         Googol
    ......         ......
    10^Googol         Googolplex================================10^0         一
    10^-1         分
    10^-2         厘
    10^-3         毫
    10^-4         丝
    10^-5         忽
    10^-6         微
    10^-7         纤
    10^-8         沙
    10^-9         尘(纳)
    10^-10         埃
    10^-11         渺
    10^-12         漠(皮)
    10^-13         模糊
    10^-14         逡巡
    10^-15         须臾(飞)
    10^-16         瞬息
    10^-17         弹指
    10^-18         刹那(阿)
    10^-19         六德
    10^-20         空虚
    10^-21         清静(仄)
    10^-22         阿赖耶
    10^-23         阿摩罗
    10^-24         涅槃寂静(攸)
      

  12.   

    可以用map不?好像c++的
    楼上那些单位太囧了
      

  13.   

      我写好了,去这个帖子拷代码用行了,支持我给点分昂!
    http://topic.csdn.net/u/20080125/09/04c65875-4f50-42cd-bd63-d7b1429e42e1.html  这是测试结果:
                                 0  零元整
                    20050138000000  贰拾兆零伍佰零壹億叁仟捌佰萬元整
                             women  women
                             0.425  肆角叁分
                              20.1  贰拾元壹角
                             -9.63  负玖元陆角叁分
      

  14.   

    ///   <summary> 
                    ///   货币 
                    ///   </summary> 
                    public   class   Currency 
                    { 
                            ///   <summary> 
                            ///   把double数转换为大写的货币数 
                            ///   </summary> 
                            ///   <param   name="pJe"> </param> 
                            ///   <returns> </returns> 
                            public   static   string   DoubleToRmbZwdx(double   pJe) 
                            { 
                                    string[]   strArray   =   new   string[]   {   "分",   "角",   "元",   "拾",   "佰",   "仟",   "万",   "拾",   "佰",   "仟",   "亿",   "拾"   }; 
                                    string[]   strArray2   =   new   string[]   {   "零",   "壹",   "贰",   "叁",   "肆",   "伍",   "陆",   "柒",   "捌",   "玖"   }; 
                                    string   str   =   ""; 
                                    string   str2   =   "                     "   +   ((pJe   <   0.0)   ?   (0.0   -   pJe)   :   pJe).ToString("f2");//"f2"为4舍5入到两位小数 
                                    str2   =   str2.Substring(str2.Length   -   13); 
                                    str2   =   str2.Substring(0,   10)   +   str2.Substring(11); 
                                    bool   flag   =   false; 
                                    bool   flag2   =   false; 
                                    for   (int   i   =   0;   i   <   str2.Length;   i++) 
                                    { 
                                            string   str3   =   str2.Substring((str2.Length   -   i)   -   1,   1); 
                                            if   (str3   ==   "   ") 
                                            { 
                                                    break; 
                                            } 
                                            int   index   =   System.Convert.ToInt32(str3)   -   System.Convert.ToInt32("0"); 
                                            if   (index   !=   0) 
                                            { 
                                                    if   (flag   &&   !flag2) 
                                                    { 
                                                            str   =   "零"   +   str; 
                                                    } 
                                                    str   =   strArray[i]   +   str; 
                                                    str   =   strArray2[index]   +   str; 
                                                    flag   =   false; 
                                                    flag2   =   false; 
                                                    continue; 
                                            } 
                                            switch   (i) 
                                            { 
                                                    case   0: 
                                                    { 
                                                            if   (flag   &&   !flag2) 
                                                            { 
                                                                    str   =   "零"   +   str; 
                                                            } 
                                                            str   =   "整"   +   str; 
                                                            flag2   =   true; 
                                                            continue; 
                                                    } 
                                                    case   2: 
                                                    { 
                                                            if   ((flag   ¦ ¦   (str3   ==   "0"))   &&   !flag2) 
                                                            { 
                                                                    str   =   "零"   +   str; 
                                                            } 
                                                            str   =   "元"   +   str; 
                                                            flag2   =   true; 
                                                            continue; 
                                                    } 
                                                    case   6: 
                                                    { 
                                                            if   ((flag   ¦ ¦   (str3   ==   "0"))   &&   !flag2) 
                                                            { 
                                                                    str   =   "零"   +   str; 
                                                            } 
                                                            str   =   "万"   +   str; 
                                                            flag2   =   true; 
                                                            continue; 
                                                    } 
                                                    case   10: 
                                                    { 
                                                            if   ((flag   ¦ ¦   (str3   ==   "0"))   &&   !flag2) 
                                                            { 
                                                                    str   =   "零"   +   str; 
                                                            } 
                                                            if   (flag2) 
                                                            { 
                                                                    str   =   str.Substring(2); 
                                                            } 
                                                            str   =   "亿"   +   str; 
                                                            flag2   =   true; 
                                                            continue; 
                                                    } 
                                            } 
                                            flag   =   true; 
                                    }                                 //if   (Convert.ToDouble(System.Math.Abs(pJe).ToString("f2"))   <   1.0) 
                                    //{ 
                                    //         str   =   "零"   +   str; 
                                    //}                                 if   (pJe   <   0.0) 
                                    { 
                                            return   ("负"   +   str); 
                                    } 
                                    
                                    if   (pJe   ==   0.0) 
                                    { 
                                            return   ""; 
                                    } 
                                    return   str; 
                            } 
                    }