Chrome 29.0.1547.57:
0.0095 .toFixed(3) // "0.009"
0.1095 .toFixed(3) // "0.110"
1.1095 .toFixed(3) // "1.109"
此功能有什么问题?
我知道我可以编写自己的函数,这里的问题是为什么库存函数如此错误?
根据MDN,它在JS 1.5中实现,因此它并不新鲜。或者我可能不理解这个功能吧?
答案 0 :(得分:3)
问题是大多数小数部分的二进制浮点表示不准确。 0.0095
的内部表示可能实际上类似于0.00949999
,因此toFixed
向下舍入,而0.1095
可能是0.109500001
,向上舍入。