js保留小数位数(进位舍去)问题

toFixed(x)

  这个方法在使用时,它内部对于进位舍去并没有使用四舍五入方法,而是使用的是银行家舍去法,即:

  • 舍去位的数值小于5时,直接舍去
  • 舍去位的数值大于等于6时,进位舍去
  • 当舍去位的数值等于5时,分为两种情况:5后面还有其他数字(非0),则进位后舍去;若5后面是0,则根据5前一位数的奇偶性来判断是否需要进位,奇数进位,偶数舍去。

  结果为:

let a = 0.45265;
console.log(a.toFixed(1))//5=5,由于后面存在数字2!=0,进位
console.log(a.toFixed(2))//2<5,舍去
console.log(a.toFixed(3))//6>5,进位
console.log(a.toFixed(4))//5=5,且5后面不存在数字>0
console.log(a.toFixed(5))
//结果
0.5
0.45
0.453
0.4526
0.45265

 

posted @ 2023-06-16 14:10  奔跑的哈密瓜  阅读(296)  评论(0编辑  收藏  举报