2012-02-14 45 views
12

我正在寻找一种方式来一批围捕到250的下一个最接近的倍数,例如,如果我有以下JS:回合可变,X的下一个最接近的多个

var containerHeight = $("#container").height(); 

...我们想象“containerHeight”的价值是680px,我想要一种最高达750px的方法(如果值为1007,则应该舍入为1250)。我怀疑这需要比我预期的更复杂的解决方案。或者也许jQuery有一个内置函数,这将使这可行?

我想比它是一个jQuery的问题(​​但我的jQuery的语法知识也有点有限:)

任何想法/帮助位大为赞赏, 感谢这更是一个数学问题!

+0

的可能的复制([20(或X)在JavaScript中的步骤四舍五入?] http://stackoverflow.com/questions/14627566/rounding-in-steps-of-20-or-x-in-javascript) – leo 2016-01-11 14:22:11

回答

21
containerHeight = Math.ceil(containerHeight/250.0) * 250; 
+0

谢谢,詹姆斯!那很完美。 – LearnWebCode 2012-02-14 17:30:09

+0

重要的是,这不适用于浮点数。 – 2015-03-22 19:29:14

+0

@MatthewMarlin对于浮点数,这个解决方案的工作原理(不添加X.X00000001 ...东西):https://stackoverflow.com/a/27861660/2441655(这是做四舍五入而不是上限 - 但可以很容易地更改为使用'Math.ceil'的天花板) – Venryx 2017-06-10 09:28:58

6
function NearestMultiple(i, j) { 
    alert(Math.ceil(i/ j) * j); 
} 

NearestMultiple(1007, 250); //returns 1250 

http://jsfiddle.net/SUya9/1/

见例如或者有什么太詹姆斯说!

编辑:我看你想圆了所有的时间...更新小提琴,但詹姆斯在1让她

+1

感谢您的帮助,这将完美地工作! – LearnWebCode 2012-02-14 17:31:07

+0

请注意,这不适用于浮点数。 http://jsfiddle.net/SUya9/15/ – 2015-03-22 19:28:22

+0

@MatthewMarlin对于浮点数,此解决方案工作(不添加X.X00000001 ...东西):https://stackoverflow.com/a/27861660/2441655(这是舍入而不是上限 - 但可以很容易地通过'Math.ceil'改变为使用天花板) – Venryx 2017-06-10 09:29:03

相关问题