Python मा राउन्डिङ्ग पूर्ण गाइड: round() र Decimal मोड्युलको प्रयोग

目次

1. परिचय

Python डेटा विश्लेषण, मेसिन लर्निङ आदि विभिन्न क्षेत्रहरूमा प्रयोग हुने प्रोग्रामिङ भाषा हो। दैनिक प्रोग्रामहरूमा प्रायः देखिने कार्यहरू मध्ये एक हो “संख्याको गोलाई”。 उदाहरणका लागि, निश्चित दशमलव स्थानको अंकहरूलाई गोल्याउन वा पूर्णांकमा नजिक्याउन आवश्यक पर्ने धेरै परिस्थितिहरू छन्। यस लेखमा, Python मा गोलाई गर्न विभिन्न विधिहरूलाई विस्तृत रूपमा व्याख्या गर्नेछौं। Python को बिल्ट‑इन फङ्क्शन round() देखि, अझ सटीक प्रक्रिया सम्भव बनाउने Decimal मोड्युलसम्म, परिस्थितिअनुसारको गोलाई विधिहरू प्रस्तुत गरिनेछ। यस गाइडमार्फत, संख्यात्मक प्रक्रियाको शुद्धता बढाउन, कोडको विश्वसनीयता सुधार्न आवश्यक सीपहरू हासिल गर्न सक्नुहुनेछ।

2. Pythonमा राउन्डिङ के हो

Pythonमा राउन्डिङ भनेको, संख्यालाई सबैभन्दा नजिकको पूर्णांकमा वा निर्दिष्ट अंकसम्मको मानमा रूपान्तरण गर्ने प्रक्रिया हो। यो प्रक्रिया डेटा प्रशोधन र संख्यात्मक गणनामा अत्यन्त महत्वपूर्ण छ। उदाहरणका लागि, वित्तीय डेटा वा भौतिक विज्ञानको गणनामा, जहाँ शुद्धता आवश्यक हुन्छ, संख्याको गोलाईले परिणाममा ठूलो प्रभाव पार्न सक्छ। Pythonमा, निर्मित round() फलन प्रयोग गरेर सजिलै राउन्डिङ गर्न सकिन्छ, तर यस फलनमा सीमाहरू पनि छन्। विशेष गरी फ्लोटिङ पोइन्ट संख्याको शुद्धतामा ध्यान दिनु आवश्यक छ, र सही नतिजा प्राप्त गर्नको लागि Pythonको Decimal मोड्युल प्रयोग गर्ने सिफारिस गरिन्छ। अर्को खण्डमा, round() फलनलाई केन्द्रबिन्दु बनाउँदै, राउन्डिङको आधारभूत विधिहरूलाई हेरिनेछ।

3. round() function को मूलभूत प्रयोग

round() को प्रयोगको मूल

round() function Python मा मानक रूपमा उपलब्ध function हो, जसलाई संख्यालाई गोलो बनाउन प्रयोग गरिन्छ। आधारभूत प्रयोग तलको जस्तै छ:
print(round(1.5))  # आउटपुट: 2
print(round(2.5))  # आउटपुट: 2
यस उदाहरणमा, 1.5 लाई 2 मा, 2.5 लाई पनि 2 मा गोलो बनाइएको छ। Python को round() function सामान्यतया सम संख्यातिर गोलो बनाउने “बैंकर्स राउन्डिङ” अपनाउँछ। अर्थात्, गोलो बनाउँदा, 0.5 को भाग आएमा, नजिकको सम संख्यामा गोलो बनाइन्छ भन्ने विशेषता छ।

दशमलव स्थान निर्दिष्ट गरेर गोलो बनाउने

round() function को दोस्रो तर्क प्रयोग गरेर, दशमलव बिन्दु पछिको अंकहरू निर्दिष्ट गरी संख्यालाई गोलो बनाउन सकिन्छ। तल उदाहरण देखाइएको छ:
print(round(1.456, 2))  # आउटपुट: 1.46
यो कोडमा, दशमलव तेस्रो अंकमा गोलो बनाइन्छ र दोस्रो अंकसम्म देखाइन्छ।

round() function को ध्यान दिनुपर्ने बुँदा

तर, round() function मा केही ध्यान दिनुपर्ने बुँदा छन्। त्यो हो, फ्लोटिङ पोइन्ट संख्याको प्रतिनिधित्वमा त्रुटि हुन सक्छ। उदाहरणका लागि, 0.1 वा 0.2 जस्ता संख्याहरू कम्प्युटर भित्र ठीकसँग प्रतिनिधित्व गर्न सकिँदैन, जसको परिणामस्वरूप, इच्छानुसार गोलो बनाइँदैन। यस्तो अवस्थामा, अधिक सटीक प्रक्रिया गर्न सक्ने Decimal मोड्युलको प्रयोग विचार गर्नुपर्छ। अर्को खण्डमा, यो Decimal मोड्युलबारे विस्तृत रूपमा व्याख्या गर्नेछौं।

4. Decimal मोड्युल प्रयोग गरेर सटीक गोलाई

Decimal मोड्युल के हो?

Python को Decimal मोड्युल फ्लोटिङ पोइन्ट नम्बर (float) को शुद्धता समस्यालाई समाधान गर्न डिजाइन गरिएको हो। विशेष गरी, वित्तीय डेटा र सटीक वैज्ञानिक गणनाहरू जस्ता त्रुटि सहन नसक्ने परिस्थितिहरूमा प्रयोग गरिन्छ। Decimal मोड्युलले सही दशमलव गणना प्रदान गर्दछ, जसले फ्लोटिङ पोइन्ट नम्बरबाट हुने त्रुटिलाई टाल्न मद्दत गर्छ। उदाहरणका लागि, सामान्य float प्रयोग गरेर गणना गर्दा, तल जस्तो समस्या देखा पर्न सक्छ:
print(0.1 + 0.2)  # आउटपुट: 0.30000000000000004
यसरी, फ्लोटिङ पोइन्ट नम्बरले सटीक मान प्राप्त गर्न कठिनाइ हुन्छ। यसलाई समाधान गर्न Decimal प्रयोग गर्दा, तल जस्तै सही नतिजा प्राप्त हुन्छ:
from decimal import Decimal

print(Decimal('0.1') + Decimal('0.2'))  # आउटपुट: 0.3

Decimal वस्तु निर्माण गर्ने तरिका

Decimal वस्तु संख्यालाई स्ट्रिङको रूपमा पास गरेर बनाइन्छ। यसले फ्लोटिङ पोइन्ट त्रुटिलाई हटाएर, सही मानलाई ह्यान्डल गर्न सम्भव बनाउँछ। उदाहरण:
from decimal import Decimal

d = Decimal('1.456')
print(d)  # आउटपुट: 1.456

quantize() मेथड द्वारा गोलाई

Decimal वस्तुको quantize() मेथड प्रयोग गर्दा, निर्दिष्ट अंकसम्म गोलाई गर्न सकिन्छ। quantize() मा गोलाई मोड पनि निर्दिष्ट गर्न सकिन्छ। सामान्य गोलाई ROUND_HALF_UP प्रयोग गरिन्छ, तर अन्य मोडहरू (ROUND_DOWN आदि) पनि उपलब्ध छन्। उदाहरणको रूपमा, दशमलव दोश्रो अंकसम्म गोलाई गर्ने कोड देखाइन्छ:
from decimal import Decimal, ROUND_HALF_UP

d = Decimal('1.456')
rounded = d.quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)
print(rounded)  # आउटपुट: 1.46

Decimal मोड्युलको फाइदाहरू र प्रयोगका स्थितिहरू

Decimal मोड्युल विशेष गरी रकम गणना र उच्च शुद्धता आवश्यक डेटा प्रोसेसिङमा उपयोगी छ। उदाहरणका लागि, वित्तीय उद्योगमा 1 येन भन्दा कमको त्रुटि पनि जम्मा भएर ठूलो समस्या उत्पन्न गर्न सक्छ, त्यसैले Decimal प्रयोग गरेर सही गणना आवश्यक हुन्छ। साथै, वैज्ञानिक डेटा विश्लेषणमा पनि संख्यात्मक त्रुटिलाई न्यूनतम राख्न Decimal को प्रयोग सिफारिस गरिन्छ।
年収訴求

5. math.floor()math.ceil() को परिचय

math.floor() को प्रयोग

math.floor() एउटा फलन हो जसले दिइएको संख्याको तलको सबैभन्दा ठूलो पूर्णांक फिर्ता गर्छ। अर्को शब्दमा, यो संख्यालाई “कटौती” गर्दा प्रयोग हुन्छ। उदाहरणका लागि, 3.9 लाई कटौती गर्दा परिणाम 3 हुन्छ।
import math

print(math.floor(3.9))  # आउटपुट: 3
floor() साना दशमलव भागलाई कटौती गरेर पूर्णांकमा रूपान्तरण गर्न चाहँदा अत्यन्त उपयोगी हुन्छ।

math.ceil() को प्रयोग

अर्कोतर्फ, math.ceil() एउटा फलन हो जसले दिइएको संख्याको माथिको सबैभन्दा सानो पूर्णांक फिर्ता गर्छ। यसलाई “उपरि गोलाई” भनिन्छ, उदाहरणका लागि, 3.1 लाई उपरि गोलाई गर्दा परिणाम 4 हुन्छ।
import math

print(math.ceil(3.1))  # आउटपुट: 4

floor()ceil() को प्रयोगका स्थितिहरू

floor()ceil() विशेष गरी सांख्यिकीय विश्लेषण वा खेल विकास जस्ता, डेटा गोलाई प्रक्रिया आवश्यक पर्ने अवस्थामा उपयोगी हुन्छन्। उदाहरणका लागि, पोइन्ट प्रणाली वा स्कोरिङमा, साना दशमलव भागलाई कटौती वा उपरि गोलाई गर्दा उपयोगी हुन्छ। साथै, round() फलनले समाधान गर्न नसक्ने “हामी सधैं उपरि गोलाई गर्न चाहन्छौं” वा “हामी सधैं कटौती गर्न चाहन्छौं” जस्ता स्थितिहरूमा मद्दत गर्छ।

6. संयोजन गरेर प्रयोग गर्ने अनुप्रयोग उदाहरणहरू

राउन्डिङ गर्ने विधिहरूमा, round()Decimal का साथै, floor()ceil() पनि छन्। यी कार्यहरूलाई संयोजन गरेर प्रयोग गर्दा, लचिलो संख्यात्मक प्रक्रिया सम्भव हुन्छ।

कस्टम फङ्सन बनाउने

उदाहरणका लागि, इच्छित अंकसंख्यामा राउन्डिङ गरेपछि, त्यस परिणामलाई ceil() द्वारा माथि उठाउने कस्टम फङ्सन बनाउन सकिन्छ। तलको उदाहरणले, संख्यालाई राउन्डिङ गर्दै अन्त्यमा अनिवार्य रूपमा माथि उठाउने फङ्सन देखाउँछ:
import math

def custom_round(value, digits):
    rounded_value = round(value, digits)
    return math.ceil(rounded_value)

print(custom_round(1.456, 2))  # आउटपुट: 2
यसरी, कस्टम फङ्सन बनाएर, विशेष शर्तहरूमा आधारित राउन्डिङ वा माथि उठाउने/तल झर्ने कार्यहरूलाई कार्यान्वयन गर्न सकिन्छ। थप रूपमा, Decimal मोड्युल प्रयोग गरेर, सटीक राउन्डिङ प्रक्रिया संयोजन गर्न पनि सम्भव छ।

7. अक्सर सोधिने प्रश्नहरू (FAQ)

1. round() फङ्क्शनलाई कुन परिस्थितिमा प्रयोग गर्नु पर्छ?

round() फङ्क्शन Python मा संख्यालाई गोलो बनाउँदा सबैभन्दा सजिलो तरिका हो। विशेष गरी, फ्लोटिङ पोइन्ट संख्या वा पूर्णांकलाई गोलो बनाउँदा उपयोगी छ। तर, round() ले 0.5 को भाग आएमा नजिकको सम संख्यामा गोलो बनाउने “ब्यांकर्स राउन्डिङ” डिफल्ट रूपमा प्रयोग गर्छ। सामान्य गोलो बनाउने आवश्यकता वा सम गोलो स्वीकार्य हुने परिस्थितिमा round() उपयुक्त हुन्छ। उदाहरणका लागि, तलको कोडले round() प्रयोग गरी दशमलवको दोस्रो अंकसम्म गोलो बनाउँछ।
print(round(1.456, 2))  # आउटपुट: 1.46

2. Decimal मोड्युल कुन परिस्थितिमा उत्तम हुन्छ?

Decimal मोड्युल अत्यन्त सटीक संख्यात्मक ह्यान्डलिंग आवश्यक पर्ने परिस्थितिमा उत्तम हुन्छ। विशेष गरी, फ्लोटिङ पोइन्टको शुद्धतासँग सम्बन्धित समस्याहरू टाल्न चाहँदा उपयोगी छ। वित्तीय लेनदेन वा वैज्ञानिक गणनामा, फ्लोटिङ पोइन्ट त्रुटिले परिणाममा ठूलो प्रभाव पार्न सक्छ, त्यसैले Decimal प्रयोग गरेर अधिक सटीक गणना सम्भव हुन्छ। उदाहरणका रूपमा, तलको कोडले Decimal प्रयोग गरी सटीक गणनाको नतिजा प्राप्त गर्दछ।
from decimal import Decimal
print(Decimal('0.1') + Decimal('0.2'))  # आउटपुट: 0.3

3. गोलो बनाउने नतिजा अपेक्षाबाट फरक परेमा कसरी समाधान गर्ने?

गोलो बनाउने नतिजा अपेक्षाबाट फरक परेमा, पहिलो विचार गर्नुपर्ने कुरा round() फङ्क्शनको ब्यांकर्स राउन्डिङ हो। 0.5 भन्दा बढी हुँदा, सम संख्यामा गोलो बनाइने सम्भावना हुन्छ, जसले सधैं चाहिएको नतिजा नआउन सक्छ। यो समस्या समाधान गर्न Decimal मोड्युल प्रयोग गरी, ROUND_HALF_UP जस्ता निर्दिष्टिकरणसँग गोलो बनाउने तरिका अपनाउन सकिन्छ।
from decimal import Decimal, ROUND_HALF_UP
d = Decimal('1.25')
print(d.quantize(Decimal('0.1'), rounding=ROUND_HALF_UP))  # आउटपुट: 1.3

8. सारांश

यस लेखमा, Python मा संख्याहरूको गोलाई गर्न विभिन्न विधिहरूको व्याख्या गरिएको छ।round() फलो सजिलै प्रयोग गर्न सकिन्छ, तर शुद्धता र गोलाईको तरिकामा ध्यान दिनु आवश्यक छ। यदि सटीक संख्यात्मक गणना आवश्यक छ भने Decimal मोड्युल प्रयोग गरी, शुद्धता र गोलाईको विधिलाई बिस्तारै नियन्त्रण गर्ने सिफारिस गरिन्छ। त्यसै गरी, math.floor()math.ceil() जस्ता, गोलाई बाहेकका विधिहरूलाई लचिलो रूपमा प्रयोग गर्दा, प्रोग्रामको शुद्धता र कार्यक्षमता सुधार हुन्छ। उद्देश्य अनुसार उपयुक्त विधि चयन गरी, Python मा संख्यात्मक गणना सही रूपमा गरौं।

9. सम्बन्धित लेखहरू・सन्दर्भहरू

Python मा गोलाई (राउन्डिंग) सम्बन्धी विभिन्न विधिहरूको बुझाइलाई गहिरो बनाउन, तलका सन्दर्भ लेखहरू र आधिकारिक दस्तावेजहरू प्रयोग गर्दा थप गहिरो ज्ञान प्राप्त गर्न सकिन्छ।
  1. Python आधिकारिक दस्तावेज – round() फलन Python को मानक फलन round() सम्बन्धी आधिकारिक दस्तावेज। प्रयोग विधि र ध्यान दिनुपर्ने बुँदाहरू विस्तृत रूपमा व्याख्या गरिएको छ। विशेष गरी “ब्यांकर्स राउन्डिङ” सम्बन्धी व्याख्या महत्वपूर्ण छ। Python Official Documentation
  2. Python आधिकारिक दस्तावेज – decimal मोड्युल decimal मोड्युलको आधिकारिक दस्तावेज, जसले सटीक संख्यात्मक प्रक्रिया गर्न मद्दत गर्छ। फ्लोटिङ पोइन्ट संख्याको शुद्धता समस्या र quantize() को प्रयोग विधि बारे विस्तृत रूपमा सिक्न सकिन्छ। Python Decimal Documentation
  3. गोलाई सम्बन्धी लेख – note.nkmk.me गोलाई सम्बन्धी विस्तृत व्याख्यात्मक लेख। round()decimal मोड्युलको प्रयोगलाई विशिष्ट कोड उदाहरणहरूसँग प्रस्तुत गरिएको छ। शुरुआतीहरूका लागि पनि बुझ्न सजिलो व्याख्या विशेषता हो। Python मा दशमलव र पूर्णांकलाई गोलाई गर्ने तरिका
यी स्रोतहरूलाई प्रयोग गरी, Python मा गोलाई र संख्यात्मक प्रक्रिया सम्बन्धी बुझाइलाई अझ गहिरो बनाउनुहोस्।