Javascript作业—数字转化为大写

JS金额转大写
本文介绍了一个使用JavaScript将数字金额转换成中文大写金额的函数实现。通过解析整数和小数部分,结合中文数字字符,正确处理千位分隔符和货币单位,实现了精确的金额转换。

开始学javascript,写作业。

 

 

<script type="text/javascript">
function toChinese(money){
    var chNum=['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'];
    var maxnum=999999999999.99;

    var chstr = '', //返回的大写字符串
        moneyint=parseInt(money)+'',//整数位
        moneydec= money.toString().split('.')[1], //取小数位
        len = moneyint.length;
            
    if(+money==0)     {return '零元整';}
    else if(money <= maxnum) 
    {    
        //处理整数
        if(moneyint >0) chstr +='元';//整数大于0,先插入元
        
        for(var i = 0;i < len;i++){
            if(i == 4 && +moneyint.slice(-8,-4)>0){//万-亿之间有数字,则插入万;否则不插入
                chstr = '万 '+chstr;
            }
            else if(i ==  8){//插入亿
                chstr = '亿 '+chstr;
            }
            
            if(+moneyint[len-i-1]>0){
                num = i%4; //每四位-个十百千
                switch(num){
                    case 0:chstr=chNum[moneyint[len-i-1]]+chstr;break; //
                    case 1:chstr=chNum[moneyint[len-i-1]]+'拾'+chstr;break;//
                    case 2:chstr=chNum[moneyint[len-i-1]]+'佰'+chstr;break;//
                    case 3:chstr=chNum[moneyint[len-i-1]]+'仟'+chstr;break;//
                }
            }else if(i%4>0 && moneyint[len-i]>0) //非个位等于0,前一位不等于0则插入零
            {
                chstr = '零' + chstr;
            }
            
        }
        
        //处理2位小数
        if(+moneydec){//undefined 或00为false
            moneydec=moneydec.slice(0,2);
            var jiao = moneydec[0];
            var fen = moneydec[1];
            if(+jiao || +fen) {
                chstr += (+jiao? chNum[jiao]+'角' : '零');
                chstr += (+fen ? chNum[fen]+'分' : '' );
            }
        }
        else{
            chstr += '整';
        }
        
    } 
    else 
    {
       chstr = '超出最大处理数字 或 参数为空';
    }
   return chstr;    
}

</script>

 

转载于:https://www.cnblogs.com/dinghanhua/p/9700767.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值