js四舍五入保留两位小数公式

我们不仅要会对数据进行取整,有时候为了数据更加精准,保留小数是再所难免的。虽然我们说有四舍五入的方法,但在实际使用的时候也会遇到诸多的问题。下面我们先简单了解一下toFixed的方式使用,得了公式模板后,再进行实际保留小数的案例分析,对公式方法更进一步理解。

1.toFixed方法

toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。例如将数据Num保留2位小数,则表示为:toFixed(Num);但是其四舍五入的规则与数学中的规则不同,使用的是银行家舍入规则。

letnumber=1.116
number.toFixed(2)//得到1.12

2.toFixed保留小数实例

由于2.55不是精确表示的,而2.5是可以精确表示的,所以2.55 – 2.5就可以得到0.05存储的值。可以看到确实是比0.05小。

按照源码的判断,如果剩下的尾数第1位不是1就不进位,由于剩下的尾数第1位是0,所以不进位,因此就导致了(2.55).toFixed(1)输入结果是2.5.

根本原因在于2.55的存储要比实际存储小一点,导致0.05的第1位尾数不是1,所以就被舍掉了。

那怎么办呢?难道不能用toFixed了么?知道原因后,我们可以做一个修正:

if(!Number.prototype._toFixed){
Number.prototype._toFixed=Number.prototype.toFixed;
}
Number.prototype.toFixed=function(n){
return(this+3e-16)._toFixed(n);
};

原文来自:https://www.py.cn

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容