一日一记2
情景:不四舍五入保留2位小数A
方案:String(parseInt(A*100)/100).toFixed(2)
问题:乘法或除法会使小数丢失精度
解决办法:
1 获取小数点位置,对字符串进行截取
function formatDecimal(num, decimal) {
num = num.toString()
let index = num.indexOf('.')
if (index !== -1) {
num = num.substring(0, decimal + index + 1)
} else {
num = num.substring(0)
}
return parseFloat(num).toFixed(decimal)
}
注释:substring(a,b )下标从a开始到b-1结束
2 let a=+`${A}e${2};
a <<=0
a=+`${A}e${-2};