JavaScript:toFixed(...) 方法的缺点

JavaScript: Downsides of toFixed(...) method

提问人:FranXh 提问时间:8/16/2014 更新时间:8/18/2022 访问量:549

问:

在我的程序中,我需要四舍五入到最接近的两位小数的“浮点数”,经过一番研究,我决定使用 toFixed(..) 来实现此目的,如下例所示。使用 toFixed() 的缺点是什么?它是否在所有浏览器中都能正常工作?如果没有,在哪些情况下它无法正常工作?

var numb = 123.23454; 
numb = +numb.toFixed(2);
JavaScript 浮点 精度

评论

0赞 Pointy 8/16/2014
好吧,如果您立即将返回值转换回一个数字,则可能会重新引入您试图消除的浮点不准确现象。 返回一个字符串.toFixed().toFixed()
0赞 FranXh 8/16/2014
你能给我举个例子吗?
0赞 Pointy 8/16/2014
如果你在任何后续数学运算中不使用“numb”,这(可能)不会有问题,但问题是算术运算可能会引入轻微的不准确。您的申请可能没问题;这只是一件需要牢记的事情。

答:

1赞 jayelm 8/16/2014 #1

如果固定小数点行为令人满意,则使用 .根据 Mozilla 的开发者文档,这种方法是在 2000 年发布的 JavaScript 1.5 中实现的,因此您会看到与几乎所有现代浏览器的兼容性,包括 IE6+。toFixed

编辑:啊,如果你不知道,把一个数字变成一个字符串,对做,嗯,字符串的事情很有用。如果这不是您的预期行为,请在此处查找有关该方法的 SO 问题。toFixedMath.round

1赞 iyhc 8/18/2022 #2

这个参考来源鼓掌,不能很好地处理极端情况。ToFixed()

const value = 1.005;

console.log(value.toFixed(2)) // expect 1.01, return 1.00