JAVASCRIPT-貨幣千分位,並且保留兩位小數


  /**
   * @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) < 0 ? '-' : '') + sysmbol + temp.join(',').split('').reverse().join('') + right; // 補齊正負號和貨幣符號,數組轉為字符串,通過逗號分隔,再分割(包含逗號也分割)反向轉為字符串變回原來的順序
     } else if (money === 0) {
         return zero;
     } else {
         return zero;
     }
 }
調用:
dealMoney(1); // "¥1.00"
dealMoney(89783, '$', 3); // "$89,783.000"
dealMoney('guo', '$', 3); // "$0.00"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM