大家好

最近遇到一個需求
在 javascript 實現小數點後2位無條件捨去
通常我們遇到的都是四捨五入
所以我想來試試看
結果還發現一個很特別的特性...

 

var vv = 8.531;
console.log( Math.floor(vv * 100) / 100 ); //當數值是 8.531 ,小數點3位數時候floor正常
var vv = 8.53;
console.log( vv * 100 ); //852.999999 //當數值是 8.53 乘上100後,就直接變成852.99999 !
console.log( Math.floor(vv * 100) ); //852 再進行floor就會錯誤了
console.log( Math.floor(vv * 100) / 100 ); //8.52

console.log( Math.round(Math.floor(vv * 1000) / 10)/100 ); //所以我改成 *100 floor 之後再除10 之後再四捨五入即可

 

雖然不一定是最好的做法

就給大家參考囉