我需要一個JavaScript調用,將全面數字高達12
最接近的倍數一些示例:
1→12
7 - > 12
14 - > 24
27 - > 36
有誰知道這樣做的好方法嗎?我所能想到的是「如果在1-11之間,使它成爲12.如果在13-23之間,使它成爲24等等」。但這看起來效率不高。
我需要一個JavaScript調用,將全面數字高達12
最接近的倍數一些示例:
1→12
7 - > 12
14 - > 24
27 - > 36
有誰知道這樣做的好方法嗎?我所能想到的是「如果在1-11之間,使它成爲12.如果在13-23之間,使它成爲24等等」。但這看起來效率不高。
var n = 13;
var next = Math.ceil(n/12) * 12;
對於n <12,這將舍入爲0。 –
@HunterMcMillen,這是不正確的,對於小於零的所有值它不會爲零。它將四捨五入到最接近零的12。又名-25將是-24。零將是零,因爲零是12的倍數。 – epascarello
有趣。很多5/12的語言都會導致整數除法,Javascript似乎將結果保留爲浮點。至少這是我從Chrome獲得的:'5/12 = 0.4166666666666667',但我期望0。 –
function nearest(i) {
return Math.floor((i-1)/12)*12+12;
}
+1小區前看到它epascarello它做同樣的事情,但以更清潔的方式。 – javabeangrinder
對於正整數:
ceiling(n/12.0) * 12
對於負整數:
floor(n/12.0) * 12
對於零:
return 12
如果它爲負零? ;) – epascarello
它可能不會是,我聽說這個數字是罕見的。 –
function roundIt(n) {
return Math.ceil(n/12) * 12;
}
除以12,圍捕,由12 – Pointy
乘@epascarello我道歉,如果這是一個重複的,我沒有張貼此 – fullOfQuestions