1. 程式人生 > 實用技巧 >JAVASCRIPT-貨幣千分位,並且保留兩位小數

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"