使用toLocaleString转换数字为千位逗号展示

430 阅读1分钟

使用toLocaleString转换数字为千位逗号展示,并保留两位小数方法,可传入locales与option参数来改造自己需要的数据展示格式,参数值参考toLocaleString的具体文档

/**
   * @Description: 转换数字为千位逗号隔开格式,保留2位小数
   * @param {value} 需要转换的数字
   * @param {locales} string
   * @param {option} object
   * @author: XuLijuan
   */
const numToThousands = (
  value,
  locales = 'en-US',
  option = { minimumFractionDigits: 2, maximumFractionDigits: 2 },
) => {
  if (Number.isNaN(value) || !value) {
    return '0.00';
  }
  return Number(value).toLocaleString(locales, { ...option });
};
numbToThousands(1000) // '1,000.00'
//注意:保留俩位小数时会进行四舍五入
numbToThousands(1000.999) // '1,001.00'

使用BigNumber.js转换数字为千位逗号展示,并保留两位小数方法,优点:保证数字精确度,Number对于数值很大的数字精确度不够的

import BigNumber from 'bignumber.js';
/**
   * @Description: 转换数字为千位逗号隔开格式,保留2位小数
   * @param {value} 需要转换的数字
   * @param {option} object
   * @author: XuLijuan
   */
const numToThousands = (
  value,
  option = {},
) => {
  if (Number.isNaN(value) || !value) {
    return '0.00';
  }
  const format = { decimalSeparator: '.', groupSeparator: ',', groupSize: 3, ...option };
  const x = new BigNumber(value);
  return x.toFormat(2, BigNumber.ROUND_UP, format);
};