是因为js计算是通过二进制计算的,所以通过乘以100加百分号会存在失真问题如下
我是用移动小数点实现的,但是只是用与小于1的小数
formatFloat(num) {
let f = String(num);
let arr = [...f].splice(2);
if (f == 1) {
return 100;
} else if (f.length < 4) {
arr.push("0");
}
arr.splice(2, 0, ".");
let result = arr.join("");
return Number(result);
},
结果如下: