डेसीमल फ्लोटिंग-पॉइंट अंकगणित के लिए पायथन decimal मॉड्यूल प्रदान करता है। इस मॉड्यूल में सैकड़ों फ़ंक्शन होते हैं जो डेसीमल गणनाओं के कुशल प्रसंस्करण में मदद करते हैं। हम इस विषय पर महत्वपूर्ण और सबसे अधिक उपयोग किए जाने वाले फ़ंक्शन्स को देखेंगे।
compare()
यह फ़ंक्शन डेसीमल नंबर्स की तुलना करता है। यदि पहला डेसीमल आर्गुमेंट दूसरे से बड़ा है तो 1 रिटर्न करता है, यदि पहला दूसरे से छोटा है तो -1 रिटर्न करता है, और यदि दोनों बराबर हैं तो 0 रिटर्न करता है।
उदाहरण
import decimal
val1 = decimal.Decimal(2.6)
val2 = decimal.Decimal(2.61)
# डेसीमल की तुलना करें
print("The result is:", val1.compare(val2))
# वैल्यूज़ रीसेट करें
val1 = decimal.Decimal(2.6)
val2 = decimal.Decimal(-2.6)
# डेसीमल की तुलना करें
print("The result is:", val1.compare(val2))
# वैल्यूज़ रीसेट करें
val1 = decimal.Decimal(2.6)
val2 = decimal.Decimal(2.6)
# डेसीमल की तुलना करें
print("The result is:", val1.compare(val2))
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
The result is: -1 The result is: 1 The result is: 0
max() और min()
ये क्रमशः दो डेसीमल नंबर्स का अधिकतम और न्यूनतम ढूंढते हैं।
उदाहरण
import decimal
val1 = decimal.Decimal(2.6)
val2 = decimal.Decimal(2.61)
# डेसीमल की तुलना करें
print("The max value is:", round(val1.max(val2), 2))
print("The min value is:", round(val1.min(val2), 2))
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
The max value is: 2.61 The min value is: 2.60
getcontext()
हम इस मेथड का उपयोग करके अंकगणितीय ऑपरेशन्स की प्रिसिजन बदल सकते हैं। डिफ़ॉल्ट प्रिसिजन 28 है। नीचे दिए गए उदाहरण में हम एक अंकगणितीय ऑपरेशन करते हैं जो getcontext().prec द्वारा सेट प्रिसिजन के अनुसार परिणाम दिखाता है।
उदाहरण
from decimal import * print(Decimal(13) / Decimal(7)) getcontext().prec = 6 print(Decimal(13) / Decimal(7)) getcontext().prec = 10 print(Decimal(13) / Decimal(7))
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
1.857142857142857142857142857 1.85714 1.857142857
exp()
दिए गए नंबर पर (नेचुरल) एक्सपोनेंशियल फ़ंक्शन e**x का मान वापस करता है।
उदाहरण
from decimal import * # e ढूंढना print(Decimal(1).exp()) # e की घात 2 ढूंढना print(Decimal(2).exp()) # e की घात 4 ढूंढना print(Decimal(4).exp())
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
2.718281828459045235360287471 7.389056098930650227230427461 54.59815003314423907811026120
as_integer_ratio()
कभी-कभी हमें उन इंटीजर्स की आवश्यकता होती है जिनका विभाजन हमें वह डेसीमल देता है जिससे हम निपट रहे हैं। यह हम as_integer_ratio() का उपयोग करके प्राप्त कर सकते हैं।
उदाहरण
from decimal import *
v = Decimal('2.1834').as_integer_ratio()
print(v)
v = Decimal('-1.92').as_integer_ratio()
print(v)
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
(10917, 5000) (-48, 25)
ln() और log10()
हम इन फ़ंक्शन्स का उपयोग करके नेचुरल लॉगरिदम (बेस e के साथ) के साथ-साथ बेस 10 लॉगरिदम की गणना कर सकते हैं। हम वह डेसीमल वैल्यू देते हैं जिसके लॉगरिदम की आवश्यकता होती है।
उदाहरण
from decimal import *
ln_val = Decimal('2.1').ln()
print(ln_val)
log_val = Decimal('2.1').log10()
print(log_val)
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
0.7419373447293773124826065257 0.3222192947339192680072441618
fma(a, b)
यह एक विशेष फ़ंक्शन है जिसे फ्यूज्ड मल्टीप्लाई और एड कहा जाता है। सप्लाई किया गया डेसीमल पहले आर्गुमेंट a से गुणा होता है और फिर परिणाम दूसरे आर्गुमेंट b में जुड़ जाता है।
उदाहरण
from decimal import * # (2.1*2)+5 के समान fma_val = Decimal(2.1).fma(2, 5) print(fma_val) # (8.1*3)+5 के समान fma_val = Decimal(8.1).fma(3, 5) print(fma_val)
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
9.200000000000000177635683940 29.29999999999999893418589636