2012-02-14 38 views
12

Tôi đang tìm kiếm một cách để làm tròn lên một số đến nhiều gần nhất tiếp theo của 250. Vì vậy, ví dụ nếu tôi đã có JS sau:Vòng một biến đến nhiều gần nhất tiếp theo của X

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

... Và chúng tôi tưởng tượng giá trị của "containerHeight" là 680px, tôi muốn có một cách để làm tròn lên đến 750px (nếu giá trị là 1007, nó phải tròn tới 1250). Tôi nghi ngờ điều này đòi hỏi một giải pháp phức tạp hơn tôi dự đoán. Hoặc có lẽ jQuery có một chức năng được xây dựng trong đó sẽ làm cho điều này khả thi?

Tôi cho rằng đây là chi tiết của một câu hỏi toán học hơn là một câu hỏi jQuery (nhưng jQuery kiến ​​thức cú pháp của tôi cũng là một chút hạn chế :)

Bất kỳ ý tưởng/bit giúp đỡ được đánh giá cao rất nhiều, Cảm ơn!

+0

Có thể trùng lặp [Làm tròn theo các bước 20 (hoặc X) trong JavaScript?] (http://stackoverflow.com/questions/14627566/rounding-in-steps-of-20-or-x-in-javascript) – leo

Trả lời

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

Cảm ơn, James! Đó là hoàn hảo. – LearnWebCode

+0

Điều quan trọng là không phải điều này không hoạt động đối với các số dấu phẩy động. –

+0

@MatthewMarlin Đối với số dấu chấm động, giải pháp này hoạt động (không thêm X.X00000001 ... điều): https://stackoverflow.com/a/27861660/2441655 (điều này làm tròn thay vì trần-ing - nhưng có thể dễ dàng thay đổi để sử dụng trần với 'Math.ceil') – Venryx

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

NearestMultiple(1007, 250); //returns 1250 

Xem ví dụ tại http://jsfiddle.net/SUya9/1/

Hoặc những gì James nói quá!

EDIT: Tôi thấy bạn muốn làm tròn mọi lúc ... Cập nhật fiddle, nhưng James đã mời cô ấy ở 1.

+1

Cảm ơn sự giúp đỡ, điều đó cũng có thể hoạt động hoàn hảo! – LearnWebCode

+0

Lưu ý rằng điều này không hoạt động đối với các số dấu phẩy động. http://jsfiddle.net/SUya9/15/ –

+0

@MatthewMarlin Đối với số dấu chấm động, giải pháp này hoạt động (không thêm X.X00000001 ... điều): https://stackoverflow.com/a/27861660/2441655 (điều này làm tròn hơn là trần - nhưng có thể dễ dàng thay đổi để sử dụng trần với 'Math.ceil') – Venryx

Các vấn đề liên quan