我对toFixed()
函数有疑问。我有一些浮点数,例如160.325和5.325。 toFixed()
函数的返回值应该分别为160.33和5.33,但是对于160.325返回值为160.32,对于5.325返回5.33。
我尝试了不同的方式,
Number(160.325).toFixed(2)
"160.32"
Number(160.326).toFixed(2)
"160.33"
Number(5.325).toFixed(2)
"5.33"
Number(160.425).toFixed(2)
"160.43"
我希望输出为160.33和5.33。
答案 0 :(得分:-3)
MDN已针对此意外行为添加了警告。您可以阅读here
浮点数不能精确地用二进制表示所有小数,这会导致意外的结果
示例:
2.35.toFixed(1); // Returns '2.4'. Note it rounds up
2.55.toFixed(1); // Returns '2.5'. Note it rounds down