Javascript:四舍五入到下一个 5 的倍数

新手上路,请多包涵

我需要一个效用函数,它接受一个整数值(长度从 2 到 5 位数字),该整数值四舍五入到 下一个 5 的倍数而不是 最接近 的 5 的倍数。这是我得到的:

 function round5(x)
{
    return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;
}

当我运行 round5(32) 时,它给了我 30 ,我想要 35。

当我运行 round5(37) 时,它给了我 35 ,我想要 40。

当我运行 round5(132) 时,它给了我 130 ,我想要 135。

当我运行 round5(137) 时,它给了我 135 ,我想要 140。

ETC…

我该怎么做呢?

原文由 Amit Erandole 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

这将完成工作:

 function round5(x)
{
    return Math.ceil(x/5)*5;
}

It’s just a variation of the common rounding number to nearest multiple of x function Math.round(number/x)*x , but using .ceil instead of .round 根据数学规则使其始终向上舍入而不是向下/向上。

原文由 pawel 发布,翻译遵循 CC BY-SA 3.0 许可协议

const roundToNearest5 = x => Math.round(x/5)*5

这会将数字四舍五入到最接近的 5。要始终四舍五入到最接近的 5,请使用 Math.ceil 。同样,要始终向下舍入,请使用 Math.floor 而不是 Math.round 。然后您可以像调用任何其他函数一样调用此函数。例如,

 roundToNearest5(21)

将返回:

 20

原文由 Spencer Stolworthy 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题