在js中我们常常会进行四舍五入保留两位小数,那么怎么进行四舍五入呢?请看下面的解答。
可能你一直在用toFixed。但toFixed实际上不是采用的四舍五入,而是四舍六入。有的也叫银行家舍入,简单来说就是:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一(ps:这一句网上扒来的)。不过也不完全符合银行家舍入规则,经过实践呢,“四舍六入五考虑,五后非零就进一”这一句是正确的,而“五后为零看奇偶,五前为偶应舍去,五前为奇要进一”这一句就得看浏览器了,在IE11上是正确的而在chrome、firefox、safari、opera上就不对了。
或许你不太相信,toFixed在大部分情况下都是符合四舍五入的,只要你试试100.115.toFixed(2)就会发现结果居然是100.11,怎么样?是不是很神奇。
言归正传,怎么四舍五入保留两位小数呢?
方法一:可以采用Math.round(X * 100) / 100进行处理,目前来说没有发现什么异常情况,有的话可以留言大家一起学习一下。
方法二:或者你也可以重写toFixed方法,这里找了一个比较不错的方法,推荐给大家。如果你有更好的方法的话也希望留言一起学习学习。https://github.com/AlanZhang001/num-toFixed