注释:将金钱的小写转化为大写

    setChargePercent: (price) => {
      let n =   price;
      let fraction = ['角','分'];
      let digit = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖']  
      let unit = [['元','万','亿',],['','拾','佰','仟']]  
      let head = n<0?'欠':'';
      n = Math.abs(n);
      var s = '';
      console.log(n)
      for (let i = 0 ; i < fraction.length ; i++) {
        //s += (digit[Math.floor(n*10*Math.pow(10,i))%10] + fraction[i]).replace(/零./,'')
        // 解决 0.99 的问题
        if(i == 1){
          // console.log(n*10*Math.pow(10,i)) 
          // console.log(Math.ceil(n*10*Math.pow(10,i))%10) 
          s += (digit[Math.round(n*10*Math.pow(10,i))%10] + fraction[i]).replace(/零./,'') ;
        }else{
          s += (digit[Math.floor(n*10*Math.pow(10,i))%10] + fraction[i]).replace(/零./,'') ;
        }
 
      }  

      s = s || '整';
      n = Math.floor(n);
      for (let i= 0; i < unit[0].length && n >0; i++ ){
          let p = ''
          for (let j= 0;  j< unit[1].length && n >0; j++ ){
            p = digit[n%10]+unit[1][j]+p
            n=Math.floor(n/10);
          } 
          s   = p.replace(/(零.)*零$/,'').replace(/^$/,'零')+unit[0][i]+s;
      } 
      var chargePrice = '';
      chargePrice = head +   s.replace(/(零.)*零元/,'元').replace(/(零.)+/g,'零').replace(/^整$/,'零元整');
      return chargePrice;
    }

 

 

posted on 2019-01-14 15:49  刘世涛6192  阅读(397)  评论(0编辑  收藏  举报