繁体   English   中英

JavaScript 中的十进制舍入

[英]Decimal rounding in JavaScript

我正在努力实现这个问题中的要求。 在大多数情况下,使用以下代码可以正常工作:

Math.round(num * 100) / 100

但是我遇到了由于非常奇怪的行为而失败的情况。 我想四舍五入的数字是 1.275。 我希望它四舍五入到 1.28,但它被四舍五入到 1.27。 这背后的原因是 num * 100 导致 127.49999999999999 而不是 127.5。

为什么会发生这种情况,有没有办法解决?

编辑

是的,这个问题可能是我面临的问题的根本原因,但所选答案的建议解决方案对我不起作用。 所需的最终结果是一个正确显示的四舍五入数字。 所以基本上我试图实现那个问题的指示(检查下面),但我无法弄清楚如何。

如果您只是不想看到所有这些额外的小数位:只需在显示结果时将结果四舍五入到固定的小数位。

您可以使用toFixed来确保您正在寻找的精度:

var x = 1.275;
var y = x * 100;
y = y.toFixed(1); // y = 127.5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM