使用此代码(https://jsfiddle.net/d5pjr60g/):
var num = 67.475;
var round = (Math.round( num * 100 ) / 100).toFixed(2);
alert(round);
数字 67.475 和 77.475 分别返回 67.47 和 77.47。但是,如果您更改任何其他数字,它会“正确”舍入。 57.475 或 67.375 将分别返回 57.48 和 67.38。
如果使用基本的 var round = num.toFixed(2); 会得到相同的结果
每个浏览器都会发生这种情况。如何将 77.475 舍入到 77.48?
最佳答案
也许是舍入方案的问题,它可能使用 banker's rounding 。这个解决方案可以处理它。 Gaussian/banker's rounding in JavaScript
关于JavaScript 舍入在 77.475 和 67.475 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41619522/