0

我试图找出解决四舍五入的最佳方法。

基本上我有这个数字:var weekMilliseconds = 604800000(一周中的毫秒数)

我有另一个函数可以输出一个随机数。

我想做的是基于随机数,我想输出下一个周毫秒的倍数。

例如:

如果随机 # 为 1:向上舍入 604800000

如果随机数为 604800001,则向上取整为 1209600000 (604800000 * 2)

等等.....

实现这一目标的最佳方法是什么。

4

2 回答 2

4

使用Math.ceil()(它给你下一个整数):

Math.ceil(randomNumber / weekMilliseconds) * weekMilliseconds
于 2012-09-05T21:26:05.283 回答
2

你真的可以通过几种方式做到这一点。我建议使用javascript的Math.ceil()功能。这个想法是,如果你想四舍五入到最接近的数字y,则将输入x除以y。然后将其四舍五入到最接近的整数,并将其乘以要四舍五入的数字。因此,如果您有 11 并且想将其四舍五入为 12,11/12则除以 ,将其~.917四舍五入1,然后乘以1*12= 12。所以:roundTo * ceil(random/roundTo)

weekMilliseconds * Math.ceil(number / weekMilliseconds);

采取以下措施:

  1. 228,上限为 49 的倍数。
    • 49 * ceil(228/49) = 245
  2. 32,上限为 8 的倍数。
    • 8 * ceil(32/8) = 32
  3. 64,上限为 100 的倍数。
    • 100 * ceil(64/100) = 100
于 2012-09-05T21:19:04.247 回答