Python round() फ़ंक्शन का उदाहरणों सहित उपयोग

⚡ स्मार्ट सारांश

Python round() एक अंतर्निर्मित फ़ंक्शन है जो निर्दिष्ट संख्या में दशमलव स्थानों तक पूर्णांकित फ़्लोटिंग-पॉइंट या पूर्णांक मान लौटाता है, और टाई को तोड़ने के लिए बैंकर राउंडिंग का उपयोग करके निकटतम सम अंक की ओर बढ़ता है।

  • 🔘 सिंटेक्स: round(number, ndigits) एक फ़ंक्शन है जो राउंड करने के लिए मान और एक वैकल्पिक अंक गणना स्वीकार करता है जो डिफ़ॉल्ट रूप से शून्य होता है।
  • वापसी प्रकार: ndigits को छोड़ देने पर एक पूर्णांक प्राप्त होता है, जबकि ndigits प्रदान करने पर एक फ्लोट प्राप्त होता है।
  • बैंकर द्वारा राउंडिंग: मध्य मान निकटतम सम संख्या में राउंड हो जाते हैं, इसलिए round(2.5) 2 लौटाता है।
  • 🧪 ऋणात्मक संख्याएँ: ऋणात्मक संख्याओं पर भी राउंडिंग लागू होती है, जैसे -2.8 को -3 और -1.5 को -2 में बदलना।
  • परिशुद्धता उपकरण: डेसिमल मॉड्यूल और NumPy का round() फ़ंक्शन निश्चित परिशुद्धता और सरणी राउंडिंग को संभालते हैं।
  • 🤖 एआई वर्कफ़्लो: मशीन लर्निंग कोड, बेहतर लॉगिंग और रिपोर्ट के लिए मेट्रिक्स, संभावनाओं और भार को सुव्यवस्थित करता है।

Python round() फ़ंक्शन

round() फ़ंक्शन क्या है? Python?

Python round() एक अंतर्निर्मित फ़ंक्शन है जो इसके साथ उपलब्ध है Pythonयह आपको एक फ्लोट संख्या लौटाएगा जिसे इनपुट के रूप में दिए गए दशमलव स्थानों तक पूर्णांकित किया जाएगा।

यदि पूर्णांकित किए जाने वाले दशमलव स्थान निर्दिष्ट नहीं किए गए हैं, तो इसे 0 माना जाएगा, तथा इसे निकटतम पूर्णांक तक पूर्णांकित किया जाएगा।

वाक्य - विन्यास

round(float_num, num_of_decimals)

पैरामीटर्स

  • फ्लोट_नंबर: राउंड ऑफ की जाने वाली फ्लोट संख्या।
  • दशमलव की संख्या: (वैकल्पिक) राउंडिंग करते समय विचार किए जाने वाले दशमलव स्थानों की संख्या। यह वैकल्पिक है, और यदि निर्दिष्ट नहीं किया जाता है, तो यह डिफ़ॉल्ट रूप से 0 होता है, और राउंडिंग निकटतम पूर्णांक तक की जाती है।

विवरण

round() विधि दो तर्क लेती है:

  • जिस संख्या को राउंड ऑफ करना है, और
  • दशमलव स्थान जिन्हें पूर्णांक बनाते समय ध्यान में रखना चाहिए।

दूसरा तर्क वैकल्पिक है और निर्दिष्ट न होने पर डिफ़ॉल्ट रूप से 0 होता है, और ऐसे मामले में, यह निकटतम पूर्णांक तक राउंड करेगा, और रिटर्न प्रकार भी एक पूर्णांक होगा।

जब दशमलव स्थान, यानी दूसरा तर्क, मौजूद होता है, तो यह दिए गए स्थानों की संख्या तक पूर्णांकित हो जाएगा। रिटर्न प्रकार फ़्लोट होगा।

यदि दिए गए दशमलव स्थान के बाद की संख्या यह है:

  • यदि मान >= 5 है, तो अंतिम मान में +1 जोड़ा जाएगा।
  • यदि मान < 5 है, तो अंतिम मान उल्लिखित दशमलव स्थानों तक यथावत लौटाया जाएगा।

प्रतिलाभ की मात्रा

यदि दशमलव की संख्या नहीं दी गई है तो यह पूर्णांक मान लौटाएगा, और यदि संख्या दी गई है तो यह फ्लोट मान लौटाएगा। कृपया ध्यान दें कि यदि दशमलव बिंदु के बाद का मान 5 या उससे अधिक है, तो मान को +1 तक पूर्णांकित किया जाएगा, अन्यथा यह मान को बताए गए दशमलव स्थानों तक यथावत लौटाएगा।

राउंडिंग का कितना प्रभाव हो सकता है? (राउंडिंग बनाम ट्रंकेशन)

राउंडिंग के प्रभाव को दर्शाने का सबसे अच्छा उदाहरण स्टॉक एक्सचेंज बाजार है। अतीत में, यानी वर्ष 1982 में, वैंकूवर स्टॉक एक्सचेंज (VSE) प्रत्येक ट्रेड पर स्टॉक मूल्यों को तीन दशमलव स्थानों तक सीमित करने के लिए उपयोग किया जाता था।

यह प्रक्रिया प्रतिदिन लगभग 3000 बार दोहराई जाती थी। इसके परिणामस्वरूप हर महीने लगभग 25 अंकों का नुकसान होता था।

मानों को छोटा करने बनाम पूर्णांक बनाने का एक उदाहरण नीचे दिखाया गया है।

नीचे जनरेट किए गए फ्लोटिंग-पॉइंट नंबरों को स्टॉक वैल्यू मानिए। अभी मैं इन्हें 0.01 और 0.05 के बीच 1,000,000 सेकंड की रेंज के लिए जनरेट कर रहा हूं।

उदाहरण:

arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]

राउंडिंग के प्रभाव को दिखाने के लिए, मैंने कोड का एक छोटा सा हिस्सा लिखा है जिसमें, पहले, आप केवल 3 दशमलव स्थानों तक की संख्याओं का उपयोग करते हैं, यानी 3 दशमलव स्थानों के बाद संख्या को हटा देते हैं।

मेरे पास मूल कुल मूल्य, ट्रंकेटेड मूल्यों से प्राप्त कुल मूल्य और मूल तथा ट्रंकेटेड मूल्य के बीच का अंतर है।

संख्याओं के उसी समूह पर, मैंने 3 दशमलव स्थानों तक round() विधि का उपयोग किया है और मूल मान और राउंडेड मान के बीच योग और अंतर की गणना की है।

यहां उदाहरण और आउटपुट दिया गया है।

उदाहरण 1

import random

def truncate(num):
    return int(num * 1000) / 1000

arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]
sum_num = 0
sum_truncate = 0
for i in arr:
    sum_num = sum_num + i  
    sum_truncate = truncate(sum_truncate + i)
  
print("Testing by using truncating upto 3 decimal places")
print("The original sum is = ", sum_num)
print("The total using truncate = ", sum_truncate)
print("The difference from original - truncate = ", sum_num - sum_truncate)

print("\n\n")
print("Testing by using round() upto 3 decimal places")
sum_num1 = 0
sum_truncate1 = 0
for i in arr:
    sum_num1 = sum_num1 + i  
    sum_truncate1 = round(sum_truncate1 + i, 3)

print("The original sum is =", sum_num1)
print("The total using round = ", sum_truncate1)
print("The difference from original - round =", sum_num1 - sum_truncate1)

आउटपुट:

Testing by using truncating upto 3 decimal places
The original sum is =  29985.958619386867
The total using truncate =  29486.057
The difference from original - truncate =  499.9016193868665

Testing by using round() up to 3 decimal places
The original sum is = 29985.958619386867
The total using round =  29985.912
The difference from original - round = 0.04661938686695066

मूल और ट्रंकेटेड मान के बीच का अंतर 499.9016193868665 है, और राउंड() से यह 0.04661938686695066 है।

अंतर काफी बड़ा प्रतीत होता है, और उदाहरण से पता चलता है कि round() विधि सटीकता के करीब गणना करने में कैसे मदद करती है।

उदाहरण: राउंडिंग फ्लोट Numbers

इस प्रोग्राम में हम देखेंगे कि फ्लोटिंग संख्याओं पर राउंडिंग कैसे काम करती है।

# testing round()

float_num1 = 10.60 # here the value will be rounded to 11 as after the decimal point the number is 6 that is >5

float_num2 = 10.40 # here the value will be rounded to 10 as after the decimal point the number is 4 that is <=5

float_num3 = 10.3456 # here the value will be 10.35 as after the 2 decimal points the value >=5

float_num4 = 10.3445 #here the value will be 10.34 as after the 2 decimal points the value is <5

print("The rounded value without num_of_decimals is :", round(float_num1))
print("The rounded value without num_of_decimals is :", round(float_num2))
print("The rounded value with num_of_decimals as 2 is :", round(float_num3, 2))
print("The rounded value with num_of_decimals as 2 is :", round(float_num4, 2))

आउटपुट:

The rounded value without num_of_decimals is : 11
The rounded value without num_of_decimals is : 10
The rounded value with num_of_decimals as 2 is : 10.35
The rounded value with num_of_decimals as 2 is : 10.34

उदाहरण: पूर्णांक मानों को पूर्णांकित करना

यदि आप पूर्णांक मान पर round() का उपयोग करते हैं, तो यह बिना किसी परिवर्तन के आपको संख्या वापस लौटा देगा।

# testing round() on a integer

num = 15

print("The output is", round(num))

आउटपुट:

The output is 15

उदाहरण: ऋणात्मक पर पूर्णांकन Numbers

आइए कुछ उदाहरण देखें कि ऋणात्मक संख्याओं पर राउंडिंग कैसे काम करती है।

# testing round()

num = -2.8
num1 = -1.5
print("The value after rounding is", round(num))
print("The value after rounding is", round(num1))

आउटपुट:

C:\pythontest>python testround.py
The value after rounding is -3
The value after rounding is -2

उदाहरण: NumPy सरणियों को गोल करना

आप NumPy में राउंडिंग कैसे करते हैं? सरणियों में Python?

इस समस्या को हल करने के लिए, हम NumPy मॉड्यूल का उपयोग कर सकते हैं और numpy.round() या numpy.around() विधि का उपयोग कर सकते हैं, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है।

numpy.round() का उपयोग करना

# testing round()
import numpy as np

arr = [-0.341111, 1.455098989, 4.232323, -0.3432326, 7.626632, 5.122323]

arr1 = np.round(arr, 2)

print(arr1)

आउटपुट:

C:\pythontest>python testround.py
[-0.34  1.46  4.23 -0.34  7.63  5.12]

हम numpy.around() का भी उपयोग कर सकते हैं, जो आपको ऊपर दिखाए गए numpy.round() के समान परिणाम देता है।

उदाहरण: दशमलव मॉड्यूल

round() फ़ंक्शन के अलावा, Python इसमें एक दशमलव मॉड्यूल है जो दशमलव संख्याओं को अधिक सटीकता से संभालने में मदद करता है।

डेसिमल मॉड्यूल में राउंडिंग प्रकार शामिल हैं, जैसा कि नीचे दिखाया गया है:

  • गोल छत: यह अनंत की ओर मंडराएगा।
  • राउंड_डाउन: यह मान को शून्य की ओर पूर्णांकित कर देगा।
  • गोल तल: यह अनंत की ओर गोल घूमेगा।
  • राउंड_हाफ_डाउन: यह शून्य की ओर बढ़ते हुए निकटतम मान तक पूर्णांकित हो जाएगा।
  • राउंड_हाफ_इवन: यह निकटतम सम पूर्णांक तक पहुंचने के लिए राउंड ऑफ हो जाएगा।
  • राउंड_हाफ_अप: यह शून्य से दूर जाते हुए निकटतम मान तक पूर्णांकित हो जाएगा।
  • बढ़ाना: यह उस बिंदु पर राउंड करेगा जहां मान शून्य से दूर चला जाएगा।

दशमलव में, quantize() विधि दशमलव स्थानों की एक निश्चित संख्या तक पूर्णांक बनाने में मदद करती है, और आप उपयोग की जाने वाली पूर्णांकन को निर्दिष्ट कर सकते हैं, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है।

उदाहरण: round() और दशमलव विधियों का उपयोग करना

import  decimal
round_num = 15.456

final_val = round(round_num, 2)

#Using decimal module
final_val1 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_CEILING)
final_val2 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_DOWN)
final_val3 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_FLOOR)
final_val4 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_DOWN)
final_val5 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_EVEN)
final_val6 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_UP)
final_val7 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_UP)

print("Using round()", final_val)
print("Using Decimal - ROUND_CEILING ",final_val1)
print("Using Decimal - ROUND_DOWN ",final_val2)
print("Using Decimal - ROUND_FLOOR ",final_val3)
print("Using Decimal - ROUND_HALF_DOWN ",final_val4)
print("Using Decimal - ROUND_HALF_EVEN ",final_val5)
print("Using Decimal - ROUND_HALF_UP ",final_val6)
print("Using Decimal - ROUND_UP ",final_val7)

आउटपुट:

Using round() 15.46
Using Decimal - ROUND_CEILING  15.46
Using Decimal - ROUND_DOWN  15.45
Using Decimal - ROUND_FLOOR  15.45
Using Decimal - ROUND_HALF_DOWN  15.46
Using Decimal - ROUND_HALF_EVEN  15.46
Using Decimal - ROUND_HALF_UP  15.46
Using Decimal - ROUND_UP  15.46

अक्सर पूछे जाने वाले प्रश्न

नहीं. Python 3 टाई के लिए आधे को बराबर करने (बैंकर राउंडिंग) का उपयोग करता है, इसलिए राउंड (0.5) 0 है, राउंड (2.5) 2 है, और राउंड (3.5) 4 है। इससे संचयी पूर्वाग्रह कम हो जाता है।

क्योंकि 2.675 को बाइनरी फ्लोटिंग पॉइंट में सटीक रूप से संग्रहित नहीं किया जा सकता; वास्तव में यह लगभग 2.6749999999999998 के रूप में होता है, इसलिए round() फ़ंक्शन नीचे की ओर राउंड करता है। सटीक परिणामों के लिए, decimal.Decimal('2.675') का उपयोग करें।

math मॉड्यूल का उपयोग करें: math.ceil(x) हमेशा ऊपर की ओर राउंड करता है, math.floor(x) हमेशा नीचे की ओर राउंड करता है, और int(x) शून्य की ओर ट्रंकेट करता है। round() स्वयं एक निश्चित दिशा निर्धारित नहीं कर सकता।

दूसरे आर्गुमेंट में ऋणात्मक मान पास करें: round(12345, -1) से 12340, round(12345, -2) से 12300 और round(12345, -3) से 12000 प्राप्त होता है। ऋणात्मक n अंक दशमलव बिंदु के बाईं ओर राउंड करते हैं।

round(x, 2) आगे की गणनाओं में उपयोग होने वाले मान को बदल देता है, जबकि f'{x:.2f}' केवल डिस्प्ले को फॉर्मेट करता है और संख्या को अपरिवर्तित रखता है। गणनाओं के लिए round() का और आउटपुट के लिए f-strings का उपयोग करें।

नहीं. Numbers ये मान अपरिवर्तनीय हैं, इसलिए round() इनपुट को बदले बिना एक नया मान लौटाता है। उदाहरण के लिए, result = round(3.14159, 2) असाइन करने पर, मूल चर की परिशुद्धता बरकरार रहती है।

मशीन लर्निंग कोड पठनीय लॉग के लिए सटीकता, हानि और संभाव्यता मानों को राउंड करता है और भविष्यवाणियों को क्लास लेबल से मैप करता है। ग्रेडिएंट गणित के लिए पूर्ण परिशुद्धता बनाए रखें और केवल अंतिम प्रदर्शित मेट्रिक्स को राउंड करें।

हाँ। GitHub Copilot जैसे AI सहायक, टिप्पणी या फ़ंक्शन नाम से राउंड(), np.round() और दशमलव राउंडिंग को स्वतः पूरा करते हैं, और एजेंटिक उपकरण मैन्युअल फ़ॉर्मेटिंग को राउंड() कॉल में पुनर्व्यवस्थित करते हैं, हालाँकि चुनी गई परिशुद्धता की अभी भी समीक्षा की आवश्यकता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: