4

铬 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 中实现的,所以它不是新的。或者我不明白这个功能对吗?

4

1 回答 1

4

问题是大多数小数的二进制浮点表示不准确。的内部表示0.0095实际上可能类似于0.00949999, 所以toFixed向下舍入,而0.1095可能是0.109500001, 向上舍入。

请参阅Javascript toFixed Not Rounding

于 2013-08-22T08:18:09.460 回答