JAVASCRIPT-货币千分位,并且保留两位小数

2021-04-18 14:27

阅读:454

标签:return   returns   ram   ||   var   ===   def   one   lse   

  /**
   * @param {*} money[输入的money]
   * @param {string} [货币符号,sysmbol=‘¥‘]
   * @param {number} [小数点位数,places=2]
   * @returns undefined
   */
  function dealMoney(money, sysmbol = ‘¥‘, places = 2) {
    const zero = `${sysmbol}0.00`;
    if (isNaN(money) || money === ‘‘) return zero;
 
     if(money && money != null){
         money = `${money}`;
         let left=money.split(‘.‘)[0]; // 小数点左边部分
         let right=money.split(‘.‘)[1]; // 小数点右边
         // 保留places位小数点,当长度没有到places时,用0补足。
         right = right ? (right.length >= places ? ‘.‘ + right.substr(0, places) : ‘.‘ + right + ‘0‘.repeat(places - right.length)) : (‘.‘ + ‘0‘.repeat(places));
         var temp = left.split(‘‘).reverse().join(‘‘).match(/(\d{1,3})/g); // 分割反向转为字符串然后最多3个,最少1个,将匹配的值放进数组返回
         return (Number(money) // 补齐正负号和货币符号,数组转为字符串,通过逗号分隔,再分割(包含逗号也分割)反向转为字符串变回原来的顺序
     } else if (money === 0) {
         return zero;
     } else {
         return zero;
     }
 }
调用:
dealMoney(1); // "¥1.00"
dealMoney(89783, ‘$‘, 3); // "$89,783.000"
dealMoney(‘guo‘, ‘$‘, 3); // "$0.00"

 

JAVASCRIPT-货币千分位,并且保留两位小数

标签:return   returns   ram   ||   var   ===   def   one   lse   

原文地址:https://www.cnblogs.com/yxfboke/p/13294589.html


评论


亲,登录后才可以留言!