在做项目得时候遇到金额得计算,计算出金额之后需要保留两位小数,并且要采用四舍五入。
发现有的正常有的错误,解决方法如下:num为要处理的数据,digit为要保留的位数
(1)
const getRoundeNumber = (num, digit)=> {
if (!Number.prototype._toFixed) {
Number.prototype._toFixed = Number.prototype.toFixed
}
Number.prototype.toFixed = function(n) {
return (this + 1e-14)._toFixed(n)
}
return Number(num).toFixed(digit)
}
(2)
function myFixed(num, digit) {
if(Object.is(parseFloat(num), NaN)) {
return console.log(`传入的值:${num}不是一个数字`);
}
num = parseFloat(num);
return (Math.round((num + Number.EPSILON) * Math.pow(10, digit)) / Math.pow(10, digit)).toFixed(digit);
}