使用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);
};