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

Javascript 基于一周内毫秒数的舍入算法,javascript,algorithm,flot,Javascript,Algorithm,Flot,我想找出解决四舍五入问题的最佳方法 基本上我有这个数字:var weekmillesons=604800000(一周的毫秒数) 我有另一个函数,它可以输出一个随机数 我想做的是基于随机数,我想输出下一个星期百万秒的倍数 例如: 如果random#为1:四舍五入至604800000 如果随机数为604800001,则四舍五入至1209600000(604800000*2) 等等 实现这一目标的最佳方式是什么 有几种方法可以做到这一点。我建议使用javascript的函数。其思想是,如果您想四舍五入

我想找出解决四舍五入问题的最佳方法

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

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

我想做的是基于随机数,我想输出下一个星期百万秒的倍数

例如:

如果random#为1:四舍五入至604800000

如果随机数为604800001,则四舍五入至1209600000(604800000*2)

等等


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

有几种方法可以做到这一点。我建议使用javascript的函数。其思想是,如果您想四舍五入到最接近的数字
y
,则将输入的
x
除以
y
。然后将其四舍五入到最接近的整数,再乘以要四舍五入的数字。所以如果你有11,想把它四舍五入到12,除以
11/12
,也就是
~.917
,四舍五入,
1
,然后乘以
1*12
=12。所以:
roundTo*ceil(随机/roundTo)

采取以下行动:

  • 228,ceil为49的倍数。
    • 49*ceil(228/49)=245
  • 32,ceil为8的倍数。
    • 8*ceil(32/8)=32
  • 64,ceil为100的倍数。
    • 100*ceil(64/100)=100

  • 你真的可以用几种方法来做到这一点。我建议使用javascript的函数。其思想是,如果您想四舍五入到最接近的数字
    y
    ,则将输入的
    x
    除以
    y
    。然后将其四舍五入到最接近的整数,再乘以要四舍五入的数字。所以如果你有11,想把它四舍五入到12,除以
    11/12
    ,也就是
    ~.917
    ,四舍五入,
    1
    ,然后乘以
    1*12
    =12。所以:
    roundTo*ceil(随机/roundTo)

    采取以下行动:

  • 228,ceil为49的倍数。
    • 49*ceil(228/49)=245
  • 32,ceil为8的倍数。
    • 8*ceil(32/8)=32
  • 64,ceil为100的倍数。
    • 100*ceil(64/100)=100
  • 使用
    Math.ceil()
    (这将为您提供下一个整数):

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


    我相信你想要的是
    ceil
    而不是
    round
    。谢谢,很抱歉我当时没有意识到。-1因为描述中仍然提到Math.round()和舍入以及down@devnull69固定和提供的数学示例我相信您想要的是
    ceil
    ,而不是
    round
    。谢谢,对不起,我当时没有意识到。-1因为描述中仍然提到Math.round()和四舍五入和down@devnull69修复并提供数学示例
    weekMilliseconds * Math.ceil(number / weekMilliseconds);
    
    Math.ceil(randomNumber / weekMilliseconds) * weekMilliseconds