1.使用parseInt()与toFixed()的结合

仅仅使用toFixded(2)会四舍五入。

let a = 0.99996
a.toFixed(2)  //(0.99996).toFixed(2)   1.00,自动四舍五入

console.log(a.toFixed(2)) //1.00

可以使用parseInt()进行取整后再除以100。

let a = 0.99996
parseInt(a*100)/100 //0.99996*100 = 99.996,经过parseInt取整后99再除以100 = 0.99

console.log(parseInt(a*100)/100) //0.99

但是!如果小数点一位或两位为0,则只会保留整数。所以要跟toFixded(2)配合

let a = 0.909
parseInt(a*100)/100 //0.909*100 = 90.9,经过parseInt取整后90再除以100 = 0.9

console.log(parseInt(a*100)/100) //0.9  这时候只有保留了一位小数点


(parseInt(a*100)/100).toFixed(2) //自动补全后两位 

console.log((parseInt(a*100)/100).toFixed(2)) //0.90

所以无论是想保留小数点后一位还是三位,都可以用这个方法。

let a = 0.99006

(parseInt(a*10)/10).toFixed(1) //  9.9006取整为 9 再除以10 等于0.9 再取后面一位 0.9

console.log((parseInt(a*10)/10).toFixed(1)) //0.9


let b = 0.99006

(parseInt(b*1000)/1000).toFixed(3) // 990.06取整为 990 再除以1000 等于0.99 再取后面三位 0.990

console.log((parseInt(b*1000)/1000).toFixed(3)) //0.990

2.Math.floor()与toFixed()的结合

其实原理跟parseInt()差不多floor() 方法返回小于等于x的最大整数。如果传递的参数是一个整数,该值不变。

let a = 0.909


(Math.floor(a*100)/100).toFixed(2) //自动补全后两位 

console.log((Math.floor(a*100)/100).toFixed(2)) //0.90

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐