现象:今天运维问了我一个问题,两个不同的浏览器看到同一个数字最后一位小数不同。
一个浏览器是ie11,显示的是1.44。
一个浏览器是google浏览器,显示的是1.43。
思路:我第一反应应该是js有四舍五入的操作,比如用了toFixed(2)。
我猜测不同浏览器对toFixed函数解析不一样,可能不是单纯的四舍五入,有的可能有银行家算法(四舍六入,五奇入偶舍)。
搜索了一下,发现与我预期一致。
参考网址:
https://blog.csdn.net/aiyaobucuoo/article/details/54668856
建议:前端减少计算,尽量只做展示。在涉及到除法、保留小数等可能会引起差异的操作时尽量小心仔细。