通常我们对于小数位的数据进行保留两位,都是使用.toFixed(2),但是实际上会存在精度问题,例如:587.545, toFixed之后的结果是587.54而不是我们想要的587.55,所以为了精度准确,用了以下方法处理,解决!√
let formatter = new Intl.NumberFormat('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2, }) // function removeThousandSeparator(str) { // return str.replace(/,/g, ''); // } // 处理金额保留两位小数点,并进行小数点四舍五入精度问题 const formaterMoney = (data: any) => { if (!data) return "0.00" // 最终处理后结果 let temp = '' // // 处理小数部分 if ((data + '').includes('.')){ const dot = data.toString().split(".")[1] if (dot.length == 1) { temp = data + '0' } if (dot.length == 2) { temp = data + '' } if (dot.length > 2) { let num = formatter.format(data) temp = num.includes(',') ? num.replace(/,/g, '') : num // 千分位符去除 } } else { temp = intPart + '.00' } return temp }