2012-02-14 3 views
12

X sonraki en yakın katına kadar değişken:Yuvarlak aşağıdaki JS olsaydı Yani örneğin 250 sonraki en yakın katına kadar bir sayı yuvarlamak bir yol arıyorum

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

... Ve biz "containerHeight" değeri 680px olduğunu tahmin ediyorum, 750px'e kadar yuvarlamak istiyorum (eğer değer 1007 ise, 1250'ye kadar yuvarlanmalıdır). Bunun tahmin ettiğimden daha karmaşık bir çözüm gerektirdiğinden şüpheleniyorum. Ya da belki de jQuery'nin bunu mümkün kılacak dahili bir işlevi var mı?

Ben bir jQuery sorudur (ama benim jQuery sözdizimi bilgisi de sınırlı biraz :)

Herhangi bir fikir/yardım bitleri büyük takdir, sayesinde olduğundan daha da matematik soru daha olduğunu varsayalım!

+0

Olası yinelenen ([20 (veya X) JavaScript adımlarla Yuvarlama?] http://stackoverflow.com/questions/14627566/rounding-in-steps-of-20-or-x-in-javascript) – leo

cevap

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

Teşekkürler, James! Bu mükemmel. – LearnWebCode

+0

Bunun, kayan noktalı sayılar için işe yaramaması önemlidir. –

+0

@MatthewMarlin Kayan nokta sayıları için bu çözüm çalışıyor (X.X00000001 ... şeyini eklemiyor): https://stackoverflow.com/a/27861660/2441655 (bu, tavandan ziyade yuvarlama yapar - ama 'Math.ceil' ile tavanı kullanmak için kolayca değiştirilebilir. – Venryx

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

NearestMultiple(1007, 250); //returns 1250 

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

de örneğe bakın Ya James de söyledi!

DÜZENLEME: Ben her zaman ... Güncelleme keman yuvarlamak istedi görüyorum ama James 1. ısırmış

ait
+1

Yardımlarınız için teşekkürler, bu da mükemmel bir şekilde işe yarayacaktı! – LearnWebCode

+0

Bunun, kayan nokta sayıları için çalışmadığını unutmayın. http://jsfiddle.net/SUya9/15/ –

+0

@MatthewMarlin Kayan noktalı sayılar için bu çözüm çalışıyor (X.X00000001 ... şeyi eklemiyor): https://stackoverflow.com/a/27861660/2441655 (bu, tavandan ziyade yuvarlama yapar - ancak Math.ceil ile tavanı kullanmak için kolayca değiştirilebilir) – Venryx

İlgili konular