首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

金额展示大写 ,100% 结贴,Come on

2013-07-11 
金额显示大写 ,100% 结贴,,Come on!一个文本框, 一个Lable 标签文本框输入金额,后面动态显示大写汉字,,,,。

金额显示大写 ,100% 结贴,,Come on!
一个文本框, 一个Lable 标签
文本框输入金额,后面动态显示大写汉字,,,,。
求案例,最好是代码简单点的,,在线等! 大写金额
[解决办法]


#region   将钱转到中文大写  包含小数
    ///   <summary> 
    ///   钱转大写 
    ///   </summary> 
    ///   <param   name= "str "> </param> 
    ///   <returns> </returns> 
    public static string ConvertUper(string x)
    {
        String[] tmpString = x.Split('.');
        String intString = x;   // 默认为整数


        String decString = "";  // 保存小数部分字串
        if (tmpString.Length > 1)//有小数时
        {
            intString = tmpString[0];             // 取整数部分


            decString = tmpString[1];             // 取小数部分


        }
        //数字 数组 
        string[] Nums = new string[] { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
        //位 数组 
        string[] Digits = new string[] { "", "拾", "佰", "仟" };
        //单位 数组 
        string[] Units = new string[] { "", "万", "亿", "万亿" };



        string S = ""; //返回值 
        int p = 0; //字符位置指针 
        int m = intString.Length % 4; //取模 

        // 四位一组得到组数 
        int k = (m > 0 ? intString.Length / 4 + 1 : intString.Length / 4);

        // 外层循环在所有组中循环 
        // 从左到右 高位到低位 四位一组 逐组处理 
        // 每组最后加上一个单位: "[万亿]","[亿]","[万]" 
        for (int i = k; i > 0; i--)
        {
            int L = 4;
            if (i == k && m != 0)
            {
                L = m;
            }
            // 得到一组四位数 最高位组有可能不足四位 
            string s = intString.Substring(p, L);
            int l = s.Length;

            // 内层循环在该组中的每一位数上循环 从左到右 高位到低位 
            for (int j = 0; j < l; j++)
            {
                //处理改组中的每一位数加上所在位: "仟","佰","拾",""(个) 
                int n = Convert.ToInt32(s.Substring(j, 1));
                if (n == 0)
                {
                    if (j < l - 1
                        && Convert.ToInt32(s.Substring(j + 1, 1)) > 0 //后一位(右低) 


                        && !S.EndsWith(Nums[n]))
                    {
                        S += Nums[n];
                    }
                }
                else
                {
                    //处理 1013 一千零"十三", 1113 一千一百"一十三" 
                    if (!(n == 1 && (S.EndsWith(Nums[0]) 
[解决办法]
 S.Length == 0) && j == l - 2))
                    {
                        S += Nums[n];
                    }
                    S += Digits[l - j - 1];
                }
            }
            p += L;
            // 每组最后加上一个单位: [万],[亿] 等 
            if (i < k) //不是最高位的一组 
            {
                if (Convert.ToInt32(s) != 0)
                {
                    //如果所有 4 位不全是 0 则加上单位 [万],[亿] 等 


                    S += Units[i - 1];
                }
            }
            else
            {
                //处理最高位的一组,最后必须加上单位 
                S += Units[i - 1];
            }
        }
        S += "圆";
        //提取小数
        if (decString != "")
        {
            decString += "0";
            decString = decString.Substring(0, 1);   // 保留yi位小数位
            string strJiao = string.Empty;
            switch (decString)
            {
                case "0": strJiao = ""; break;
                case "1": strJiao = "壹"; break;
                case "2": strJiao = "贰"; break;
                case "3": strJiao = "叁"; break;
                case "4": strJiao = "肆"; break;
                case "5": strJiao = "伍"; break;
                case "6": strJiao = "陆"; break;
                case "7": strJiao = "柒"; break;
                case "8": strJiao = "捌"; break;


                case "9": strJiao = "玖"; break;
            }
            if (strJiao != "")
            {
                strJiao += "角";
                return S + strJiao;
            }
        }
        return S;
    }
    #endregion


[解决办法]
引用:
一个文本框, 一个Lable 标签
文本框输入金额,后面动态显示大写汉字,,,,。
求案例,最好是代码简单点的,,在线等!

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="js/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        var s = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
        var s1 = ["", "拾", "佰", "仟"];
        var s2 = ["圆", "万", "亿", "万亿"];
        $(document).ready(function () {
            $("#zhuan").click(function () {
                var zhi = $("#qian1").val();
                var zu = zhi.split('.');
                var zuqian = "";
                var zuhou = "";

                var fen = parseInt((zu[0].length - 1) / 4); //分为四组
                var yu = zu[0].length % 4;


                if (yu == 0) {
                    yu = 4;
                }
                for (var i = fen; i >= 0; i--) {
                    if (i == fen) {
                        for (var u = yu; u >= 1; u--) {
                            zuqian += s[zu[0].substring(yu - u, yu - u + 1)];
                            if (zu[0].substring(yu - u, yu - u + 1) != 0) {
                                zuqian += s1[u - 1]
                            }
                        }

                    } else {

                        for (var e = 3; e >= 0; e--) {
                            zuqian += s[zu[0].substring((fen - i - 1) * 4 + yu + 3 - e, (fen - i - 1) * 4 + yu + 4 - e)];
                            if (zu[0].substring((fen - i - 1) * 4 + yu + 3 - e, (fen - i - 1) * 4 + yu + 4 - e) != 0) {


                                zuqian += s1[e];
                            }
                        }
                    }

                    zuqian += s2[i];
                }

                if (zu.length > 1) {
                    zuhou = s[zu[1].substring(0, 1)] + "角";
                    if (zu[1].length == 2) {
                        zuhou += s[zu[1].substring(1, 2)] + "分";
                    }
                }

                $("#qian2").html(zuqian + zuhou);
            });

        })
    
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input id="qian1" type="text" />
        <br />
        <input id="zhuan" type="button" value="转换" />
        <br />
        <span id="qian2" style="color: Red;"></span>
    </div>
    </form>
</body>
</html>用JS操作的 要添加jquery的引用


其中span其实就是一个label
[解决办法]
 

<script language="JavaScript">
    function daxie() {  //定义大写数组
        this.values = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
        this.digits = ["", "拾", "佰", "仟"];
    }
    function daxie.prototype.getDaXie(money) {
        if (isNaN(money)) return "";                 //如果不是数值型,直接返回空
        var number = Math.round(money * 100) / 100;     //取数值的整数
        number = number.toString(10).split('.');  //整数和小数分开
        var moneyInt = number[0];                  //整数部分
        var len = moneyInt.length;                 //整数的长度
        if (len > 12)                             //长度如果超出范围
            return "数值超出范围!支持的最大数为 999999999999.99!";
        var returnValue = this.millonTrans(moneyInt.slice(-4));
        if (len > 4)                                          //多于万位
            returnValue = this.millonTrans(moneyInt.slice(-8, -4)) + (moneyInt.slice(-8, -4) != "0000" ? "万" : "") + returnValue;
        if (len > 8)                                          //多于亿位


            returnValue = this.millonTrans(moneyInt.slice(-12, -8)) + "亿" + returnValue;
        if (returnValue != "")
            returnValue += "圆";                                //添加最后一个字符
        if (number.length == 2)                                  //是否是带小数的金额
        {
            var cok = number[1].split('');
            if (returnValue != "" 
[解决办法]
 cok[0] != "0")
                returnValue += this.values[parseInt(cok[0])] + (cok[0] != "0" ? "角" : ""); //十位数显示角
            if (cok.length >= 2)
                returnValue += this.values[parseInt(cok[1])] + "分";                  //个位数显示分
        }
        if (returnValue != "" && !/分$/.test(returnValue) && !/角$/.test(returnValue))           //使用正则判断是否有小数  //修改后加上条件 !/角$/.test(returnValue)
            returnValue += "整";
        return returnValue;
    }
    function daxie.prototype.millonTrans(strTemp) {
        var money = strTemp.split('');                                //将金额转换为数组
        var mLength = money.length - 1;                                 //金额的长度


        var returnValue = "";
        for (var i = 0; i <= mLength; i++)                                //遍历每个元素
            returnValue += this.values[parseInt(money[i])] + (money[i] != '0' ? this.digits[mLength - i] : "");
        returnValue = returnValue.replace(/零+$/, "").replace(/零{2,}/, "零"); //返回转换后的数值
        return returnValue;
    }
    var stmp = "";
    var daXieM = new daxie();
    function strTrans(strT) {
        if (strT.value == stmp) return;
        var ms = strT.value.replace(/[^\d\.]/g, "").replace(/(\.\d{2}).+$/, "$1"); //验证用户的输入
        var txt = ms.split(".");                                                  //分割成数组
        while (/\d{4}(,
[解决办法]
$)/.test(txt[0]))
            txt[0] = txt[0].replace(/(\d)(\d{3}(,
[解决办法]
$))/, "$1,$2");            //科学计数法表示形式
        strT.value = stmp = txt[0] + (txt.length > 1 ? "." + txt[1] : "");
        daxieTxt.value = daXieM.getDaXie(parseFloat(ms));                //显示大写
        document.getElementById("Label1").innerHTML = daXieM.getDaXie(parseFloat(ms));                //显示大写

    }
  
</script>
<script>


    function aa() {
        var cc = document.getElementById("Label1").innerHTML;
//        if (confirm('您确定要入金“'+cc+'”吗?')) {
//            alert("入金成功!");
//        }
//        else {          
//            return false; 
//      }
        if (!confirm('您确定要入金"' + cc + '"吗?')) {
            return false;
        }
       
    }
</script>

小写金额:<input type="text" name="xiaoxieTxt" onkeyup="strTrans(this)"><br>
大写金额:<input type="text" name="daxieTxt" size=60 readonly="readonly"></body>
大写金额:<asp:Label ID="Label1" runat="server" Text="Label"  ForeColor="Red"></asp:Label>
<form id="form1" runat="server">

    <asp:Button ID="Button2" runat="server" Text="Button" OnClientClick=" return aa()" 
        onclick="Button2_Click" />
   </form>
</html>
</body>
</html>

热点排行