当结果是四舍五入(1.10 1.30)不显示小数点第二位时我该怎么做



我的程序(使用Math.round(在结果四舍五入时不显示第二个小数(例如:1.10,1.30(,而当结果不舍入时显示是(例如:1.24,2.47(。如何改变这一点?

function calcAmount2() {
  var userAmount2 = document.getElementById("amount2").value;
  if (userAmount2 = Number(amount2.value)) {
    document.getElementById("marginAmount2").textContent =
      Math.round(userAmount2 * 3) / 100 + "€";
  }
}
(

预期(1.10、1.30 而不是(实际(1.1 1.3

(Math.round(userAmount2 * 3) / 100).toFixed(2) + "€";

toFixed 将数字设置为始终有 2 位小数。

我相信这是格式数字的副本,始终显示 2 位小数

您想使用看起来.toFixed(2),但请注意结果将是String

我不确定你的答案必须有多具体,但我建议你改用这个:

const res = Number(Math.round(userAmount2 +'e2')+'e-2');

这是因为 toFixed 对于某些值(如 21.005(存在舍入问题。

让我在这里向你证明一下:

    
console.log(Number(Math.round(20.005 +'e2')+'e-2'));
console.log(20.005.toFixed(2));

相关内容

  • 没有找到相关文章

最新更新