格式化数字、金额,保留小数点后几位(每三位用逗号隔开)

2023-02-21  本文已影响0人  xikoo0

思路

  1. 使用tofixed或lodash中的round,格式化数字,保留小数点后几位
  2. 使用toLocaleString将数字格式化,小数点前每三位用逗号隔开,然后计算小数点位置,根据要求补0

注意

  1. 数字使用toLocaleString才能格式化为千分位的写法,如果使用tofixed保留小数点后几位,需要转换成数字再调用toLocaleString。
  2. 使用toLocaleString方法,如果小数点后是0的话,会被去除,因此需要自己动态补0
/**
 * 数字格式化
 * @param a 数字
 * @param b 保留后几位
 * @returns
 */
const amoutInterval = function (a: number, b: number) {
// round 是lodash-es中保留小数点后几位的方法,如若没有,可以使用tofixed
  const amout = round(a, b).toLocaleString()
  // 如果不需要保留后几位,直接返回
  if (!b) {
    return amout
  }
  // 如果小数点后几位不符合要求,则动态+0
  if (amout.includes('.')) {
    const num = amout.length - amout.indexOf('.') - 1
    return num < b ? `${amout}${Array(b - num).fill(0).join('')}` : amout
  }
  //如是整数,则动态补0
  return `${amout}.${Array(b).fill(0).join('')}`
}
上一篇 下一篇

猜你喜欢

热点阅读