2013-01-23 31 views
7

संभव डुप्लिकेट के निकटतम गुणज के लिए:
Round number up to the nearest multiple of 3दौर ऊपर 12

मैं एक जावास्क्रिप्ट कॉल 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

@HunterMcMillen के लिए 0 पर होगा, जो गलत है, यह शून्य से कम सभी मानों के लिए शून्य नहीं होगा। यह शून्य की ओर निकटतम 12 तक पहुंच जाएगा। उर्फ -25 होगा -24। शून्य शून्य होगा क्योंकि शून्य 12 का एक बहु है। – epascarello

+0

दिलचस्प है। यह बहुत सी भाषाओं 5/12 के परिणामस्वरूप पूर्णांक विभाजन होगा, जावास्क्रिप्ट परिणाम को एक फ़्लोटिंग पॉइंट के रूप में रखना प्रतीत होता है। कम से कम यह क्रोम से मिला है: '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

शायद यह नहीं होगा, मैंने सुना है कि संख्या दुर्लभ है। –