2013-12-14 7 views
20

के निकटतम एकाधिक के लिए एक पूर्णांक गोल करना मैं दस के निकटतम एकाधिक में एक पूर्णांक कैसे गोल करूं?रूबी 2.0 - 10

मैंने integer.round(0.1) को आजमाया है, लेकिन यह निकटतम दशमलव नंबर प्रदान करता है।

उदाहरण: 3 लौटना चाहिए 0, 55 60

लौटना चाहिए वहाँ एक विधि 10 के निकटतम गुणज पर पूर्णांक जाएगा कि है?

+0

'10 * ((x + 5)/10) 'गैर-ऋणात्मक पूर्णांक के लिए काम करेगा। –

उत्तर

38

Integer#round कार्यक्षमता है।

आप 1012 अंकों का प्रतिनिधित्व करने के लिए round पर नकारात्मक संख्या पास करते हैं, जिसे आप देखना चाहते हैं। उदाहरण के लिए:

निकटतम 10

दौर:

55.round(-1) # => 60 

पर पूर्णांक के लिए निकटतम 100:

550.round(-2) # => 600 
+0

यह एक महत्वपूर्ण आंकड़े के दौर में होगा और आवश्यक रूप से 'दसियों' परिशुद्धता के लिए नहीं होगा। –

+0

ओह ... तो मैं संख्या _negative_ बनाते हैं। धन्यवाद! –

+0

@AaronCronin मैं आपको नहीं मिला .. :( –

11

तुम सिर्फ 10 से, 10 से विभाजित कर सकते हैं दौर, तो गुणा:

nearest = (x/ 10).round * 10 
+0

'(15/10) .round * 10' रिटर्न' 10' लेकिन वापस '20' होना चाहिए था। –

+2

यह सिर्फ दशमलव को छेड़छाड़ करने वाले पूर्णांक विभाजन की वजह से है, यदि आप '10.0' से विभाजित करते हैं तो यह 20 से नीचे होगा। –

+2

यदि आप गोल करना चाहते हैं तो इससे कोई फर्क नहीं पड़ता कि यह (मेरे लिए यह एक आवश्यकता थी), आप कर सकते हैं (x/10.0)। फ्लोर * 10 – sixty4bit

संबंधित मुद्दे