这个是比较常见的业务场景了,个人还是喜欢用正则来处理而非手动js切割处理,正则效率更高,写的比较简略,有遇到不能处理的场景再来补充
直接上代码
const thousandRegex = /(\d)(?=(\d{3})+\.)/g;
/**
*
* @param {Number,String} num 格式化目标
* @param {Number} precision 精度
* @param {String} prefix 前缀
* @param {String} suffix 后缀
*/
export const getFormatNum = (num, precision = 2, prefix = '', suffix = '') => {
let num2 = +num;
if (isNaN(num2)) {
num2 = 0;
console.error('getFormatNum:不是一个数字或数字格式的字符串 ' + num);
return num
}
return prefix + num.toFixed(precision).replace(thousandRegex, '$1,') + suffix;
};