2013-01-23 50 views
7

可能重複的最近倍數:
Round number up to the nearest multiple of 3湊夠12

我需要一個JavaScript調用,將全面數字高達12

最接近的倍數一些示例:

1→12

7 - > 12

14 - > 24

27 - > 36

有誰知道這樣做的好方法嗎?我所能想到的是「如果在1-11之間,使它成爲12.如果在13-23之間,使它成爲24等等」。但這看起來效率不高。

+7

除以12,圍捕,由12 – Pointy

+0

乘@epascarello我道歉,如果這是一個重複的,我沒有張貼此 – fullOfQuestions

回答

12

使用Math.ceil()

var n = 13; 
var next = Math.ceil(n/12) * 12; 
+0

對於n <12,這將舍入爲0。 –

+0

@HunterMcMillen,這是不正確的,對於小於零的所有值它不會爲零。它將四捨五入到最接近零的12。又名-25將是-24。零將是零,因爲零是12的倍數。 – epascarello

+0

有趣。很多5/12的語言都會導致整數除法,Javascript似乎將結果保留爲浮點。至少這是我從Chrome獲得的:'5/12 = 0.4166666666666667',但我期望0。 –

0
function nearest(i) { 
    return Math.floor((i-1)/12)*12+12; 
} 
+0

+1小區前看到它epascarello它做同樣的事情,但以更清潔的方式。 – javabeangrinder

4

對於正整數:

ceiling(n/12.0) * 12 

對於負整數:

floor(n/12.0) * 12 

對於零:

return 12 
+0

如果它爲負零? ;) – epascarello

+4

它可能不會是,我聽說這個數字是罕見的。 –

0
function roundIt(n) { 
    return Math.ceil(n/12) * 12; 
}