首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript内置的toFixed()舍入替代方法

JavaScript内置的toFixed()舍入替代方法
EN

Stack Overflow用户
提问于 2021-05-03 19:58:55
回答 2查看 3K关注 0票数 0

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

如示例所示,在5.555的情况下,.toFixed(2)方法将得到5.55,但由于四舍五入的标准,我的期望是5.56。

在国际数学四舍五入的情况下,是否有任何内建的JavaScript或jQuery方法用于四舍五入?

编辑:使用Math.round()是可以接受的和可以理解的,只是数字应该被乘以和除以。我很好奇是否有任何现有的简化函数,比如toFix(),只是在5的四舍五入上有一个解决方案,当然可以为它编写一个函数,或者用适当的参数化来使用Math.round。

代码语言:javascript
复制
<!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>

EN

回答 2

Stack Overflow用户

发布于 2021-05-03 20:02:44

您可以使用Math.round

代码语言:javascript
复制
let num = 2.555;
console.log(Math.round(num * 100) / 100);

请参阅以下链接:

如果有必要的话,如何把小数点数最多取2位呢?

物体/数学/圆

round.asp

票数 2
EN

Stack Overflow用户

发布于 2021-05-03 20:25:56

准确地说,由于您需要适当的数学舍入,而不仅仅是对小数点2位的修整,更好的方法是使用Number.EPSILON

代码语言:javascript
复制
let num = 2.5555;
let result = Math.round((num + Number.EPSILON) * 100) / 100;
console.log(result); //expected 2.56
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67375076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档