js怎么把数字金额转换中文大写金额

来源:互联网 发布:php urlencode编码 编辑:程序博客网 时间:2024/04/28 07:31
    //数字金额转中文大写金额    function ConvertMoneyToChineseCapital(money) {        var cnNums = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); //汉字的数字        var cnIntRadice = new Array("", "拾", "佰", "仟"); //基本单位        var cnIntUnits = new Array("", "万", "亿", "兆"); //对应整数部分扩展单位        var cnDecUnits = new Array("角", "分", "毫", "厘"); //对应小数部分单位        var cnInteger = "整"; //整数金额时后面跟的字符        var cnIntLast = "元"; //整型完以后的单位        var maxNum = 999999999999999.9999; //最大处理的数字        var IntegerNum; //金额整数部分        var DecimalNum; //金额小数部分        var ChineseStr = ""; //输出的中文金额字符串        var parts; //分离金额后用的数组,预定义        if (money == "") {            return "";        }        money = parseFloat(money);        if (money >= maxNum) {            alert('超出最大处理数字');            return "";        }        if (money == 0) {            ChineseStr = cnNums[0] + cnIntLast + cnInteger;            return ChineseStr;        }        money = money.toString(); //转换为字符串        if (money.indexOf(".") == -1) {            IntegerNum = money;            DecimalNum = '';        } else {            parts = money.split(".");            IntegerNum = parts[0];            DecimalNum = parts[1].substr(0, 4);        }        if (parseInt(IntegerNum, 10) > 0) { //获取整型部分转换            var zeroCount = 0;            var IntLen = IntegerNum.length;            for (var i = 0; i < IntLen; i++) {                var n = IntegerNum.substr(i, 1);                var p = IntLen - i - 1;                var q = p / 4;                var m = p % 4;                if (n == "0") {                    zeroCount++;                } else {                    if (zeroCount > 0) {                        ChineseStr += cnNums[0];                    }                    zeroCount = 0; //归零                    ChineseStr += cnNums[parseInt(n)] + cnIntRadice[m];                }                if (m == 0 && zeroCount < 4) {                    ChineseStr += cnIntUnits[q];                }            }            ChineseStr += cnIntLast;            //整型部分处理完毕        }        if (DecimalNum != '') { //小数部分            var decLen = DecimalNum.length;            for (var i = 0; i < decLen; i++) {                var n = DecimalNum.substr(i, 1);                if (n != '0') {                    ChineseStr += cnNums[Number(n)] + cnDecUnits[i];                }            }        }        if (ChineseStr == '') {            ChineseStr += cnNums[0] + cnIntLast + cnInteger;        } else if (DecimalNum == '') {            ChineseStr += cnInteger;        }        return ChineseStr;    }    function CountPrice()    {                var shuliang = parseFloat($("#Quantity").val());         var danjia = parseFloat($("#UnitPrice").val());        var zongjia = parseFloat($("#ServiceTotalPrice").val());        if (this.UnitPrice == "" && this.Quantity == "") {            kendo.ui.ExtAlertDialog.show({ title: "Alert!", message: "请重新输入", icon: "k-ext-error" });        }        else {                      if (shuliang != "NaN" && danjia != "NaN") {                zongjia = shuliang * danjia;                this.ServiceTotalPrice = $("#ServiceTotalPrice").val(zongjia);                this.TotalPrice = $("#TotalPrice").val(zongjia);                              this.TotalPrice = $("#BigMoney").val(ConvertMoneyToChineseCapital(zongjia));            }                    }    }


             //数量<td><input type="text"   data-bind="value:Quantity" id="Quantity"required="required"  style="width:50px" onkeyup="CountPrice()"><span style="color:red">*</span></td>              //单价  <td><input type="text"  data-bind="value:UnitPrice" id="UnitPrice"required="required"  style="width: 50px" onkeyup="CountPrice()"><span style="color:red">*</span></td>              //合计   <td><input type="text"   data-bind="value:ServiceTotalPrice" id="ServiceTotalPrice"  style="width: 80px" /></td>      



 <td colspan="3" style="text-align: left; border-right: none;">费用合计(元): <input type="text" data-bind="value:TotalPrice" id="TotalPrice" onblur="ConvertMoneyToChineseCapital()" style="width: 100px;border-bottom:1px solid  black;"></td>                <td colspan="5" style="text-align: left; border-left: none;">大写金额:<input type="text" data-bind="value:BigMoney" id="BigMoney" ></td>        


2 0
原创粉丝点击