在保留n位小数进行四舍五入的情况下,相信大家首选toFixed,但是大家知道吗,这个toFixed是有bug的
例子:
(1.115).toFixed(2) // 1.11
那四舍五入应该用什么呢?
// 方法一:Math.round
function round(number, precision) {
return +(Math.round(+number + 'e' + precision) + `e-${precision}`)
}
// 方法二: 截取
function round(number, presision) {
const [int, decimals] = String(number).split('.');
let precisionDecimals = +decimals.slice(0, presision);
if (decimals[presision] > 4) precisionDecimals++;
return parseFloat(int + '.' + precisionDecimals)
}
如果大家有更好的办法:欢迎一起讨论