前端保留两位小数toFixed(2)会有坑

(422.445).toFixed(2)
"422.44"
(422.165).toFixed(2)
"422.17"
(422.446).toFixed(2)
"422.45"
(422.455).toFixed(2)
"422.45"
(422.456).toFixed(2)
"422.46"
(422.465).toFixed(2)
"422.46"
(422.466).toFixed(2)
"422.47"

可以看到结果并不是完全符合自动四舍五入的规律;

网上看到有些说四舍六入的,其实也不对;如422.165最后一位小于6,但也入了一位变422.17;

有的说在3位小数的情况下,第2位小数小于5,第3位小数小于等于5是不进位的,似乎也不对;如422.465,第2位大于5了,不符合规则,它应该进一位,但实际得到是422.46还是没进位;

所以还是会有坑的,建议计算逻辑由后端进行处理;实在涉及前端的计算逻辑需要注意这一点,哪怕有一些前端的处理精度的库也不一定保险。

posted @ 2024-11-06 16:16  你风致  阅读(8)  评论(0编辑  收藏  举报