基于一周内毫秒的舍入算法

时间:2012-09-05 21:14:25

标签: javascript algorithm flot

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

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

我有另一个函数吐出一个随机数。

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

例如:

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

如果随机#为604800001,则为1209600000(604800000 * 2)

依旧.....

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

2 个答案:

答案 0 :(得分:4)

使用Math.ceil()(它会为您提供下一个整数):

Math.ceil(randomNumber / weekMilliseconds) * weekMilliseconds

答案 1 :(得分:2)

你可以通过几种方式真正做到这一点。我建议使用javascript的Math.ceil()函数。我们的想法是,如果您想要舍入到最接近的数字y,请输入x并将其除以y。然后将其四舍五入到最接近的完整数字,并将其乘以要舍入的数字。所以,如果你有11并希望将其舍入为12,则将11/12除以~.917,将其向上舍入,1,然后乘以1*12 = 12.所以:{ {1}}

roundTo * ceil(random/roundTo)

采取以下措施:

  1. 228,ceil到49的倍数。
    • weekMilliseconds * Math.ceil(number / weekMilliseconds);
  2. 32,ceil到8的倍数。
    • 49 * ceil(228/49) = 245
  3. 64,ceil为100的倍数。
    • 8 * ceil(32/8) = 32