2012-02-14 76 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