在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