数字金额格式化,数字金额转大写金额

  changeMoneyToChinese(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;
            ChineseStr = cnNums[0]+cnIntLast
            //document.getElementById("show").value=ChineseStr;
            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 ){//获取整型部分转换
            let zeroCount = 0;
            let IntLen = IntegerNum.length;
            for(let i=0;i<IntLen;i++ ){
                let n = IntegerNum.substr(i,1);
                let p = IntLen - i - 1;
                let q = p / 4;
                let 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!= '' ){//小数部分
           let decLen = DecimalNum.length;
            for(let i=0; i<decLen; i++ ){
                let n = DecimalNum.substr(i,1);
                if( n != '0' ){
                    ChineseStr += cnNums[Number(n)]+cnDecUnits[i];
                }
            }
        }
        if( ChineseStr == '' ){
            //ChineseStr += cnNums[0]+cnIntLast+cnInteger;
            ChineseStr += cnNums[0]+cnIntLast;
        }/* else if( DecimalNum == '' ){
            ChineseStr += cnInteger;
            ChineseStr += cnInteger;
        } */
        return ChineseStr;
        },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值