用JavaScript将数字转换为大写金额

18 篇文章 0 订阅
 
 
  1. var digitUppercase =function(n){
  1. var fraction =['角','分'];
  1. var digit =[
  1. '零','壹','贰','叁','肆',
  1. '伍','陆','柒','捌','玖'
  1. ];
  1. var unit =[
  1. ['元','万','亿'],
  1. ['','拾','佰','仟']
  1. ];
  1. var head = n <0?'欠':'';
  1. n=Math.abs(n);
  1. var s ='';
  1. for(var i =0; i < fraction.length; i++){
  1. s+=(digit[Math.floor(n*10*Math.pow(10, i))%10]+ fraction[i]).replace(/零./,'');
  1. }
  1. s= s ||'整';
  1. n=Math.floor(n);
  1. for(var i =0; i < unit[0].length&& n >0; i++){
  1. var p ='';
  1. for(var j =0; j < unit[1].length&& n >0; j++){
  1. p= digit[n%10]+ unit[1][j]+ p;
  1. n=Math.floor(n/10);
  1. }
  1. s= p.replace(/(零.)*零$/,'').replace(/^$/,'零')+ unit[0][i]+ s;
  1. }
  1. return head + s.replace(/(零.)*零元/,'元')
  1. .replace(/(零.)+/g,'零')
  1. .replace(/^整$/,'零元整');
  1. };
  1.  
  1. console.log(digitUppercase(7682.01));//柒仟陆佰捌拾贰元壹分
  1. console.log(digitUppercase(7682));//柒仟陆佰捌拾贰元整
  1. console.log(digitUppercase(951434677682.00));//玖仟伍佰壹拾肆亿叁仟肆佰陆拾柒万柒仟陆佰捌拾贰元整
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值