js数字添加千位符(支持小数)

87 阅读1分钟

数字或者字符串数字添加千分符,支持小数。如1024转为1,024,1024.1024转为1,024.1024

/**

 * @description 数字或者字符串数字添加千分符,支持小数。如1024转为1,024,1024.1024转为1,024.1024

 * @param {Number || String} num 数字或者字符串数字,支持小数

 * @return {String}

 */

function addThousandSeparator(num) {

  if (!num || !Number.isFinite(+num)) return num // (!num)是针对null,因为+null返回0会导致Number.isFinite(+num)返回true,发生误判

  const decimals = Number.isInteger(+num) ? '' : String(num).split('.')[1]

  let arr = String(parseInt(num)).split('').reverse()

  return `${arr

    .map((item, index) => {

      return index !== 0 && index % 3 === 0 ? item + ',' : item

    })

    .reverse()

    .join('')}${decimals && '.' + decimals}`

}