जावास्क्रिप्ट का उपयोग करके निकटतम 10 के ऊपर या नीचे एक पूर्णांक को कैसे गोल किया जाए


84

जावास्क्रिप्ट का उपयोग करते हुए, मैं एक उपयोगकर्ता द्वारा पास किए गए नंबर को निकटतम 10 पर गोल करना चाहूंगा। उदाहरण के लिए, यदि 7 पास है तो मुझे 10 वापस करना चाहिए, यदि 33 पास हो तो मुझे 30 वापस करना चाहिए।

जवाबों:


164

संख्या को 10 से विभाजित करें, परिणाम को गोल करें और इसे फिर से 10 से गुणा करें:

var number = 33;
console.log(Math.round(number / 10) * 10);


12
Math.floorयदि आप ऊपर की ओर गोल को रोकना चाहते हैं तो यह तकनीक भी काम करती है
— एलेक्स डब्ल्यू

11
आप राउंड अप करने के लिए Math.ceil विधि का उपयोग कर सकते हैं।
— केरेम डेमिरर


20

कहाँ पे iएक इंट है।

10 के निकटतम गुणक में राउंड डाउन करना अर्थात

११ हो जाता है १०
१ ९ हो जाता है १०
२१ हो जाता है २० हो जाता है

parseInt(i / 10, 10) * 10;

10 के निकटतम गुणक यानी की राउंड अप करने के लिए

११ हो जाता है २०
१ ९ हो जाता है २०
२१ हो जाता है ३० हो जाता है

parseInt(i / 10, 10) + 1 * 10;  

4
ऐसा नहीं होना चाहिए: (parseInt (i / 10, 10) + 1) * 10; ?
— user3924331

@ user3924331, आप सही हैं। सही उत्तर है (parseInt (i / 10, 10) + 1) * 10; संपादन कम से कम 6 वर्णों का होना चाहिए ताकि केवल उन दो कोष्ठकों को जोड़ना संभव न हो ... ¯_ (¯) _ / ツ
— फर्नांडो

निकटतम 10 के लिए मान 100 के लिए +10 जोड़ता है, इसलिए यह 110 हो जाता है। नीचे के निकटतम 10 में 100 के लिए 10 घटाना नहीं है, इसलिए 100 100 पर रहता है।
— टाइटनफाइटर

6

मुझे कुछ इसी तरह की जरूरत थी, इसलिए मैंने एक फंक्शन लिखा। मैंने यहाँ दशमलव गोलाई के लिए फ़ंक्शन का उपयोग किया है , और चूंकि मैं इसे पूर्णांक गोलाई के लिए भी उपयोग करता हूं, इसलिए मैं इसे उत्तर के रूप में भी सेट करूंगा। इस स्थिति में, केवल उस संख्या को पास करें जिसे आप राउंड करना चाहते हैं और फिर 10, वह संख्या जिसे आप राउंड करना चाहते हैं।

function roundToNearest(numToRound, numToRoundTo) {
    return Math.round(numToRound / numToRoundTo) * numToRoundTo;
}

मुझे यह पसंद है कि आपने इसे एक फ़ंक्शन में बनाया है, लेकिन क्या यह स्वीकृत उत्तर से अलग आउटपुट देता है, और यदि नहीं, तो आपने एक अलग सूत्र का उपयोग क्यों किया है?
— रोज़ा

यह समान मान लौटाता है, लेकिन सूत्र अलग है क्योंकि यह उपयोग करना आसान बनाता है। उदाहरण के लिए, यदि आप निकटतम में चक्कर लगाना चाहते हैं, तो आप .25बस .25दूसरे तर्क के रूप में उपयोग कर सकते हैं । यदि आप अन्य उत्तरों में सूत्रों का उपयोग 4करना चाहते थे तो आपको दूसरे तर्क के रूप में उपयोग करना होगा जब आप गोल करना चाहते हैं .25, जो प्रति-सहज है।
— cjbarth

क्या आप यह साबित कर सकते हैं? मैं सिर्फ सांत्वना में कुछ परीक्षण किया है और स्वीकार किए गए जवाब .252 तर्क के रूप में उपयोग कर सही उत्तर देता है - मैंने इसे एक लाइनर फ़ंक्शन में बनाया हैfunction roundTo(x,y){return Math.round(x / y) * y}
— RozzA

@ रोज़ा, आप सही कह रहे हैं। मैं इसी तरह के एक और सवाल के जवाब के बारे में सोच रहा था। मैं अपने कार्य को सरल करूँगा।
— cjbarth
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.