关于这个问题,先看看我在网上找到的答案
-
无效方式一:使用Math.round()方法+除法
Math.round(0.145*100)/100
效果:
-
无效方式二:直接使用数字类型自带的方法toFixed(n)
Number(0.145.toFixed(2))
效果:
看到这个结果,整个一个黑人问好???why? 0.145保留小数点后两位四舍五入应该是0.15呀。显然,上述两种方式无效。反复斟酌后,男友给出了手动进位的方式,请看下面的解决方法。
-
代码
function test(num) { //1.放大1000倍 let bigger = num * 1000; //2.拿到小数点后第三位数 let digits = bigger % 10; //3.小数点后三位大于等于5实行进位操作 if (digits >= 5) { bigger += 10 ; } return Number(((bigger - digits) / 1000).toFixed(2)); } test(0.145)
-
效果
至此,问题完美解决。