javascript - 如何使用 Math.round 将数字四舍五入到最接近的偶数?

标签 javascript rounding

请仅使用 JavaScript。

这是我第一次尝试自己编写 JavaScript。我已经成功地操纵了 friend 们过去为我编写的代码,但我从未从头开始编写自己的代码,直到最近才花时间尝试理解语言本身。

我正在尝试制作一个基本的文胸尺码计算器,它从用户输入中获取数字(测量值),将它们路由到一个函数中,然后将文胸尺码返回(计算)给用户。

因为我对这门语言还很陌生,所以我现在只想写一个部分——“band size”

我有一个输入字段供用户输入他们的“下胸围测量值”,我目前已将其设置为四舍五入。这按预期工作。看这里

<html>

<head>

<script type="text/javascript">

 function calculate() 
  {
   var underbust = document.getElementById("underBust").value;

    if (underbust.length === 0) 
     {
      alert("Please enter your underbust measurement in inches");
      return;
     }

    document.getElementById("bandsize").innerHTML = Math.round(underbust);
   }

</script>

</head>

<body>
<input type="number" id="underBust" /> inches<br>
<input type="submit" value="Submit" onclick="calculate()" /><br>
<b>underbust:</b> <div id="bandsize">bandsize will appear here</div><br>
</body>

</html>

但是,我不需要将输入“underBust”四舍五入到最接近的整数。我需要它四舍五入到最接近的 EVEN 整数,因为文胸带尺寸只能是偶数。

例如,如果用户输入数字“31.25”,代码当前会将其四舍五入为“31”,但我需要它四舍五入为“32”

如果用户输入数字“30.25”,代码会将其四舍五入为“30”,因为在这种情况下,最接近的整数和最接近的偶数是相同的。但是,如果用户输入“30.5”,代码会将其四舍五入为“31”,但我仍然需要将其四舍五入为“30”

基本上,如果用户输入等于或大于奇数(29.00 变为 30,31.25 变为 32,等等),我需要将数字向上舍入。如果用户输入大于或等于偶数且小于下一个奇数(28、28.25、28.75 等),我需要将其向下舍入(在前面的示例中,所有情况下都为 28)。奇数是四舍五入的中间部分,而不是任何数字的“.5”。

这可能吗?

最佳答案

应该这样做:

2 * Math.round(underbust / 2);

关于javascript - 如何使用 Math.round 将数字四舍五入到最接近的偶数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22442831/

相关文章:

php - 混合 php 和 javascript - 我们应该在这里使用 json 吗?

javascript - .info 文件未加载 javascript drupal

sql-server - TSQL 对小数进行舍入

javascript - 如何防止我的程序在 setTimeout 之后继续运行?

javascript - 使用 google 脚本和 html 模板循环进入要点

SQL Server 自定义小数值舍入

javascript - Vanilla javascript 函数四舍五入到最接近的百或 100K,加上符号

javascript - javascript 中的 Math.round MidPointRounding.AwayFromZero

python - 带 2 位小数的舍入方法的错误结果

javascript - 为什么 Angular js 在这里不起作用