राउंडिंग और दशमलव स्थान समझना
दशमलव स्थान उस संख्या को दर्शाते हैं जो किसी संख्या में दशमलव बिंदु के ठीक बाद आती है। ये संख्या की प्रिसीजन निर्धारित करते हैं। जितने अधिक दशमलव स्थान, उतनी ही अधिक सटीकता, और इसके विपरीत।
संख्याओं को राउंड करना मतलब संख्या में दशमलव स्थानों की संख्या कम करके उसे समायोजित करना। यह तकनीक आमतौर पर किसी संख्या को सरल बनाने के लिए लागू की जाती है, साथ ही गणनाओं में एकरूपता बनाए रखने के लिए। फिर भी, किसी संख्या को विशिष्ट दशमलव स्थानों तक राउंड करने से राउंडिंग के दौरान छोटे-छोटे त्रुटि-प्रवेश के कारण गणना की शुद्धता प्रभावित होती है।
Python दो दशमलव स्थान तक राउंड करने के लिए अलग-अलग तरीके प्रदान करता है। निम्नलिखित उदाहरण इन तकनीकों की विस्तृत व्याख्या करते हैं।
Python में round() का उपयोग करके संख्या राउंड करना
round() फ़ंक्शन Python का बिल्ट-इन फ़ंक्शन है जो floating-point संख्याओं को निर्दिष्ट दशमलव स्थानों तक राउंड करता है। आप दूसरे आर्ग्युमेंट में मान देकर यह निर्दिष्ट कर सकते हैं कि कितने दशमलव स्थान तक राउंड करना है। नीचे दिया गया उदाहरण 34.15 प्रिंट करता है।
Python का round() फ़ंक्शन तब, जब आप दूसरा आर्ग्युमेंट छोड़ देते हैं, डिफ़ॉल्ट राउंडिंग मोड के रूप में "round half to even" का उपयोग करता है। round half to even (बैंकरस् राउंडिंग) में, जब कोई संख्या ठीक दो पूर्णांकों के बीच आधे पर हो, तो उसे निकटतम सम पूर्णांक की ओर राउंड किया जाता है। यह तकनीक उपयोगी है क्योंकि यह संचयी राउंडिंग त्रुटियों को कम करने में मदद कर सकती है।
round() के साथ float प्रिसीजन की बारीकी
वित्तीय कोड में round() पर निर्भर होने से पहले एक बारीकी जानना उपयोगी है। यह आज़माएँ:
परिणाम 2.67 आता है, 2.68 नहीं। मान 2.675 को बाइनरी floating-point (IEEE 754) में ठीक-ठीक निरूपित नहीं किया जा सकता; संग्रहीत मान 2.675 से थोड़ा कम होता है, इसलिए Python नीचे की ओर राउंड करता है।
यदि आपको वित्तीय गणनाओं के लिए सटीक राउंडिंग चाहिए, तो स्पष्ट राउंडिंग मोड के साथ decimal मॉड्यूल का उपयोग करें:
Python में स्ट्रिंग फ़ॉर्मेटिंग तकनीकों से संख्या राउंड करना
स्ट्रिंग फ़ॉर्मेटिंग तकनीकें संख्याओं को दो दशमलव स्थान तक राउंड करने में उपयोगी होती हैं, खासकर जब आउटपुट में संख्या प्रदर्शित करनी हो।
ध्यान रखें कि जब आप Python में स्ट्रिंग फ़ॉर्मेटिंग से संख्या राउंड करते हैं, तो राउंड किया गया आउटपुट एक स्ट्रिंग के रूप में दिखता है, लेकिन मूल संख्या अपरिवर्तित रहती है। यदि आप मूल संख्या पर गणना करते हैं, तो वे बिना राउंड किए गए मान पर आधारित होती हैं, जिससे अप्रत्याशित परिणाम आ सकते हैं।
% ऑपरेटर के साथ राउंडिंग
% ऑपरेटर दो दशमलव स्थान तक संख्याओं को फ़ॉर्मेट करने की पारंपरिक विधि प्रदान करता है। % ऑपरेटर placeholders में मान डालकर फ़ॉर्मेटेड स्ट्रिंग्स बनाने देता है।
नीचे के उदाहरण में, f मान को floating-point संख्या के रूप में दर्शाता है जबकि .2 संख्या को राउंड करने के लिए दशमलव स्थान निर्दिष्ट करता है।
str.format() के साथ राउंडिंग
str.format() विधि जटिल राउंडिंग तकनीकों को संभालने का अधिक लचीला तरीका देती है। क्योंकि यह named placeholders का उपयोग करती है, डेवलपर्स इसे % ऑपरेटर की तुलना में अधिक पसंद करते हैं। नीचे के उदाहरण में, :.2f को कर्ली ब्रैकेट्स के भीतर उपयोग किया गया है ताकि संख्या को दो दशमलव स्थान तक राउंड किया जाए। कोड 3.14 प्रिंट करेगा।
f-strings के साथ राउंडिंग (Python 3.6+)
F-strings Python 3.6 में आईं और अब स्ट्रिंग्स में मान एम्बेड करने का पसंदीदा तरीका हैं। f-string सिंटैक्स राउंडिंग के लिए खास तौर पर साफ़-सुथरा है: बिना अलग कॉल के, एक ही लाइन में डिस्प्ले फ़ॉर्मेटिंग मिल जाती है। नीचे का कोड 14.68 प्रिंट करता है।
Python में format() का उपयोग करके संख्या राउंड करना
बिल्ट-इन format() फ़ंक्शन किसी मान और एक फ़ॉर्मेट स्पेक को लेकर फ़ॉर्मेटेड स्ट्रिंग लौटाता है। str.format() से अलग, इसमें आप संख्या को सीधे पास करते हैं, न कि उसे किसी टेम्पलेट स्ट्रिंग में एम्बेड करते हैं। नीचे का कोड 345.69 प्रिंट करता है।
Python में अन्य मॉड्यूल्स का उपयोग करके संख्या राउंड करना
मूल Python से आगे, ऐसे कई अन्य मॉड्यूल हैं जिनका उपयोग आप Python में संख्याएँ राउंड करने के लिए कर सकते हैं। मैं आपको तीन प्रमुख उदाहरण दिखाऊँगा: math, decimal और NumPy।
math मॉड्यूल का उपयोग करके राउंडिंग
math मॉड्यूल ऐसी फ़ंक्शंस प्रदान नहीं करता जो सीधे किसी संख्या को विशिष्ट दशमलव स्थानों तक राउंड कर दें। हालाँकि, आप math मॉड्यूल को अन्य अंकगणित के साथ मिलाकर किसी संख्या को दो दशमलव स्थान तक राउंड कर सकते हैं।
math.floor() फ़ंक्शन किसी संख्या को निकटतम छोटे पूर्णांक तक राउंड करता है। किसी संख्या को दो दशमलव स्थान तक नीचे की ओर राउंड करने के लिए, उसे 100 से गुणा करें, math.floor() लागू करें और 100 से भाग दें। नीचे का कोड 3.14 प्रिंट करता है।
इसी तरह, math.ceil() फ़ंक्शन किसी संख्या को निकटतम बड़े पूर्णांक तक राउंड करता है। किसी संख्या को दो दशमलव स्थान तक ऊपर की ओर राउंड करने के लिए, उसे 100 से गुणा करें, math.ceil() लागू करें और 100 से भाग दें। नीचे का कोड 3.15 प्रिंट करता है।
decimal मॉड्यूल का उपयोग करके राउंडिंग
Python में decimal मॉड्यूल .quantize() विधि का उपयोग करके float संख्याओं को सटीक दशमलव स्थानों तक राउंड करने में सहायक है। नीचे के उदाहरण में, हमने प्रिसीजन 0.01 सेट की है ताकि दो दशमलव स्थान तक राउंड करना इंगित हो।
# Import the decimal module
from decimal import Decimal
# Example number to be rounded
number = Decimal("18.73869")
# Define the rounding precision to 2 decimal places
precision = Decimal('0.01')
# Using the quantize method with ROUND_UP
# to round the number up to 2 decimal places
rounded_number = number.quantize(precision)
print(rounded_number)
# 18.74यदि आप हमेशा ऊपर की ओर राउंड करने वाले विशिष्ट व्यवहार की तलाश में हैं, तो हमारे नवीनतम ट्यूटोरियल How to Round Up a Number in Python को देखें ताकि आप math और decimal मॉड्यूल्स का उपयोग करने और अन्य तकनीकों के बारे में और जान सकें, जो सुनिश्चित करती हैं कि संख्या हमेशा ऊपर की ओर राउंड हो, नीचे नहीं। यदि आप सामान्य रूप से डेटा ट्रांसफ़ॉर्मेशन को और समझना चाहते हैं, तो हमारा Data Analyst with Python करियर ट्रैक देखें और अपनी विश्लेषणात्मक कौशल बढ़ाएँ।
NumPy का उपयोग करके राउंडिंग
NumPy में arrays के साथ काम करते समय, np.round() का उपयोग करें ताकि हर एलिमेंट को एक साथ राउंड किया जा सके। यह मानों पर मैन्युअल रूप से लूप चलाने की तुलना में तेज़ और अधिक पठनीय होता है।
np.round() Python के बिल्ट-इन round() की तरह ही banker's rounding नियम लागू करता है। यही .round() विधि pandas DataFrames और Series पर भी इसी तरह काम करती है:
pandas के साथ डेटा ट्रांसफ़ॉर्मेशन पर व्यापक नज़र के लिए हमारा pandas ट्यूटोरियल देखें।
प्रत्येक Python राउंडिंग विधि का उपयोग कब करें
सही राउंडिंग अप्रोच चुनने के लिए एक त्वरित संदर्भ:
| विधि | सबसे उपयुक्त | मान बदलता है? | रिटर्न टाइप |
|---|---|---|---|
round(x, 2) | सामान्य अंकगणित | हाँ | float |
f"{x:.2f}" | प्रदर्शन / प्रिंट | नहीं | str |
str.format() | प्रदर्शन / प्रिंट | नहीं | str |
% operator | प्रदर्शन / प्रिंट (लेगेसी) | नहीं | str |
format(x, ".2f") | प्रदर्शन / एकल मान | नहीं | str |
math.floor() / ceil() | हमेशा नीचे / हमेशा ऊपर राउंड | हाँ | float |
Decimal.quantize() | वित्तीय / सटीक दशमलव | हाँ | Decimal |
np.round(arr, 2) | NumPy arrays | हाँ | ndarray |
चयन के लिए कुछ thumb rules:
-
सिर्फ़ संख्या दिखानी है? f-string (
f"{x:.2f}") का उपयोग करें। एक लाइन, कोई import नहीं, मूल मान पर कोई साइड इफ़ेक्ट नहीं। -
परिणाम से आगे गणना करनी है?
round(x, 2)का उपयोग करें। यह एक float लौटाता है जिस पर आप आगे कैलकुलेशन कर सकते हैं। -
वित्तीय या अकाउंटिंग कोड?
Decimal.quantize()का उपयोग करें।decimalमॉड्यूल के साथ float प्रिसीजन की चौंकाने वाली बातें (round(2.675, 2) == 2.67) नहीं होतीं। -
हमेशा ऊपर या हमेशा नीचे जाना है?
math.ceil()याmath.floor()का उपयोग करें। ये राउंडिंग नियमों की परवाह नहीं करते। -
NumPy array या pandas कॉलम के साथ काम कर रहे हैं?
np.round(arr, 2)याseries.round(2)का उपयोग करें। दोनों पूरी कलेक्शन को एक साथ संभालते हैं। -
पुराना कोड बनाए रखना है?
%ऑपरेटर अब भी काम करता है, लेकिन Python 3.6 में f-strings ने उसे बदल दिया — नए कोड में उन्हें प्राथमिकता दें।
अंतिम विचार
वित्तीय और वैज्ञानिक गणनाओं में बेहतर सटीकता के लिए संख्याओं को दो दशमलव स्थान तक राउंड करना एक महत्वपूर्ण तकनीक है। इस लेख में, हमने दो दशमलव स्थान तक राउंड करने की अलग-अलग विधियाँ कवर की हैं, जिनमें बिल्ट-इन फ़ंक्शंस, स्ट्रिंग फ़ॉर्मेटिंग तकनीकें और math मॉड्यूल शामिल हैं। विशिष्ट आवश्यकताओं, जैसे प्रिसीजन और फ़ॉर्मेटिंग शैली, के आधार पर उपयुक्त विधि को समझना और चुनना महत्वपूर्ण है। मैं आपको सलाह देता हूँ कि अलग-अलग उदाहरणों के साथ इन विधियों का अभ्यास करें ताकि आप अपने उपयोग मामलों के लिए सबसे उपयुक्त तरीका बेहतर ढंग से समझ सकें।
यदि आप अपनी Python स्किल्स को आगे बढ़ाना चाहते हैं, तो हमारा Python Programming स्किल ट्रैक देखें, जिसमें फ़ंक्शंस, डेकोरेटर्स और उन्नत Python पैटर्न शामिल हैं। हमारा Python Developer करियर ट्रैक भी आपको एक डेवलपर के रूप में अपस्किल करने में मदद के लिए बनाया गया है, जिसमें अधिक उन्नत डेटा स्ट्रक्चर्स और एल्गोरिदम शामिल हैं।
अक्सर पूछे जाने वाले प्रश्न
Python में किसी संख्या को दो दशमलव स्थान तक राउंड करने का सबसे सरल तरीका क्या है?
किसी संख्या को दो दशमलव स्थान तक राउंड करने का सबसे सरल तरीका बिल्ट-इन round() फ़ंक्शन का उपयोग करना है।
round() फ़ंक्शन का उपयोग करने पर संख्या निकटतम पूर्णांक तक क्यों राउंड हो जाती है?
round() फ़ंक्शन का डिफ़ॉल्ट तरीका round half to even है। किसी संख्या को दो दशमलव स्थान तक राउंड करने के लिए, आपको दूसरे आर्ग्युमेंट के रूप में 2 देना होगा, जैसे round(3.14159, 2)।
दो दशमलव स्थान तक राउंड करने के लिए format() फ़ंक्शन का उपयोग कैसे किया जाता है?
format() फ़ंक्शन का उपयोग किसी संख्या को निर्दिष्ट दशमलव स्थानों तक राउंड करने और उसे एक फ़ॉर्मेटेड स्ट्रिंग के भीतर प्रदर्शित करने के लिए किया जाता है।
round half to even क्या है?
rounding half to even या bankers’ rounding में, ठीक दो पूर्णांकों के बीच आधे पर मौजूद संख्या को निकटतम सम पूर्णांक की ओर राउंड किया जाता है।
क्या Python में math मॉड्यूल दो दशमलव स्थान तक राउंड करने की सुविधा देता है?
आप math.floor() और math.ceil() फ़ंक्शंस को अन्य अंकगणित के साथ मिलाकर ही किसी संख्या को निर्दिष्ट दशमलव स्थानों तक राउंड कर सकते हैं।
round(2.675, 2) का परिणाम 2.68 के बजाय 2.67 क्यों आता है?
यह floating-point प्रिसीजन की समस्या है। मान 2.675 को बाइनरी floating-point (IEEE 754) में ठीक-ठीक निरूपित नहीं किया जा सकता; संग्रहीत मान 2.675 से थोड़ा कम होता है, इसलिए Python 2.67 तक नीचे राउंड कर देता है।
वित्तीय कोड में इससे बचने के लिए, स्पष्ट राउंडिंग मोड के साथ decimal मॉड्यूल का उपयोग करें: Decimal("2.675").quantize(Decimal("0.01"), rounding=ROUND_HALF_UP) अपेक्षित रूप से 2.68 लौटाता है।
pandas DataFrame में सभी मानों को 2 दशमलव स्थान तक कैसे राउंड करें?
DataFrame या Series पर .round() विधि का उपयोग करें। एक कॉलम को राउंड करने के लिए: df["price"] = df["price"].round(2)। सभी संख्यात्मक कॉलम्स को एक साथ राउंड करने के लिए: df = df.round(2)।
Python में संख्याओं को दो दशमलव स्थान तक राउंड करना एक महत्वपूर्ण तकनीक है। यह विशेष रूप से वित्तीय गणनाओं, डेटा प्रस्तुति और वैज्ञानिक रिपोर्टिंग में उपयोगी होता है।
Python सटीक राउंडिंग के लिए कई विधियाँ प्रदान करता है। इस ट्यूटोरियल में, मैं आपको दिखाऊँगा कि बिल्ट-इन फ़ंक्शंस, लाइब्रेरीज़ और फ़ॉर्मेटिंग विधियों का उपयोग करके Python में किसी संख्या को दो दशमलव स्थान तक कैसे राउंड किया जाए।
यदि आप एक डेटा विश्लेषक के रूप में शुरुआत कर रहे हैं, तो मैं DataCamp के Introduction to Python कोर्स की सलाह देता हूँ ताकि आप डेटा मैनिप्युलेशन और ट्रांसफ़ॉर्मेशन के लिए Python की बुनियाद सीख सकें। अगर आपको डेटा विश्लेषण वर्कफ़्लोज़ में संख्याओं की बड़ी arrays को राउंड करना हो, तो हमारा Python NumPy ट्यूटोरियल भी उपयोगी रहेगा।
TL;DR
अंकगणितीय राउंडिंग के लिए
round(number, 2)का उपयोग करें — यह वास्तविक मान बदल देता है।सिर्फ़ प्रदर्शित करने के लिए
f"{number:.2f}"याstr.format()का उपयोग करें — मूल float अपरिवर्तित रहता है।जब सटीक दशमलव प्रिसीजन आवश्यक हो (जैसे वित्तीय गणनाएँ), तो
decimalमॉड्यूल का उपयोग करें।पूरे NumPy array को एक साथ राउंड करने के लिए
np.round(array, 2)का उपयोग करें।float प्रिसीजन से जुड़ी अड़चनों पर ध्यान दें:
round(2.675, 2)का परिणाम2.67आता है,2.68नहीं, क्योंकि मेमोरी में floats कैसे संग्रहीत होते हैं।