【问题标题】:JavaScript built-in alternatives to toFixed() rounding [duplicate]JavaScript 内置替代 toFixed() 舍入 [重复]
【发布时间】:2021-07-26 05:28:15
【问题描述】:

要使用 JavaScript 中的 .toFixed() 方法对十进制数进行四舍五入,我希望 ...5 的结尾应该四舍五入。

如示例所示,在 5.555 的情况下,.toFixed(2) 方法将产生 5.55,尽管由于舍入标准,我的预期是 5.56。

是否有任何内置的 JavaScript 或 jQuery 方法用于按照国际数学舍入对数字进行舍入?


编辑:使用Math.round() 是可以接受和可以理解的,只是数字需要乘除。我很好奇是否有任何现有的简化函数,例如toFix(),只是在5 的舍入上提供了解决方案。当然可以为它编写一个函数或使用具有适当参数化的 Math.round。

<!DOCTYPE html>
<html>

<body>

  <p>Click the button to display the fixed number.</p>

  <button onclick="myFunction()">Try it</button>

  <p id="demo"></p>

  <script>
    function myFunction() {
      var num = 5.555;
      var n = num.toFixed(2);
      document.getElementById("demo").innerHTML = n;
    }
  </script>

</body>

</html>

【问题讨论】:

  • 上述问题共有96个答案。我认为这是足够的多样性。此外,jQuery 是一个用于操作 DOM/CSSOM 的库,而不是用于操作数字的库。
  • @HereticMonkey 好吧,我一直在寻找 .toFix() 的确切内置替代方法,例如一个新函数:.toFixProperRounding(...)。虽然可以使用 Math.round 并且可以理解,但是取整后的数字需要相乘和分布。我期待一个简化的内置方法,例如带有上述示例解决方案的 toFix()。
  • 没有函数toFix(),只有toFixed()接受一个数字并产生一个字符串。 “一个精确的内置替代方案”; Math 上可用的所有功能在here 上可用。 Number 上可用的所有功能都是here

标签: javascript jquery


【解决方案1】:

【讨论】:

    【解决方案2】:

    确切地说,因为您需要适当的数学舍入,而不仅仅是修剪到小数点后 2 位,更好的方法是使用 Number.EPSILON

    let num = 2.5555;
    let result = Math.round((num + Number.EPSILON) * 100) / 100;
    console.log(result); //expected 2.56
    

    【讨论】:

      猜你喜欢
      • 2012-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-17
      • 1970-01-01
      相关资源
      最近更新 更多