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

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

作者: xikoo0 | 来源:发表于2023-02-21 11:11 被阅读0次

思路

  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('')}`
}

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/wvbnkdtx.html