toFixed方法原则:四舍六入五成双(银行家算法)
> 正常是四舍五入,针对不同的浏览器实现不同(针对金钱的算法,最好不用此方法,否则会出问题)
- 当要舍弃的数字大于等于6时,遵循四舍六入。
1.0006.toFixed(3) // 输出 1.001
1.0003.toFixed(3) // 输出 1.000
- 当要舍弃数字右侧有其他数字,则遵循四舍五入。
1.00051.toFixed(3) // 输出 1.001
- 当要舍弃数字是5,且右侧无数字时,看具体情况是舍弃还是四舍五入。
1.0005.toFixed(3) // 输出 1.000
1.0015.toFixed(3) // 输出 1.0002
1.0025.toFixed(3) // 输出 1.0002
1.00025.toFixed(4) // 输出 1.0003
1.00015.toFixed(4) // 输出 1.0002
toFixed方法在处理金钱计算时可能会导致不一致的结果,因为它遵循的是四舍六入五成双的策略。对于尾数为5的情况,其行为取决于后续数字是否存在。若无后续数字,5可能被舍去,也可能进位,这可能导致在某些浏览器中出现错误。因此,对于金融计算,不推荐直接使用toFixed方法。
1042

被折叠的 条评论
为什么被折叠?



