पायथन में, डेसीमल नामक एक मॉड्यूल है, जिसका उपयोग कुछ डेसीमल फ्लोटिंग पॉइंट संबंधित कार्यों को करने के लिए किया जाता है। यह मॉड्यूल सही ढंग से राउंडेड फ्लोटिंग पॉइंट अंकगणित प्रदान करता है।
इसका उपयोग करने के लिए सबसे पहले हमें डेसीमल स्टैंडर्ड लाइब्रेरी मॉड्यूल को आयात करने की आवश्यकता है।
import decimal
इस खंड में हम डेसीमल मॉड्यूल के कुछ महत्वपूर्ण फंक्शन्स देखेंगे।
वर्गमूल फंक्शन sqrt() और एक्सपोनेंट फंक्शन exp()
sqrt() मेथड का उपयोग दिए गए डेसीमल टाइप ऑब्जेक्ट के वर्गमूल की गणना के लिए किया जाता है। और exp() मेथड दिए गए x के लिए डेसीमल नंबर के रूप में e^x मान लौटाता है।
उदाहरण कोड
# sqrt() और exp() मेथड्स का प्रदर्शन
import decimal
my_dec = decimal.Decimal(25.36)
print(my_dec)
# डेसीमल नंबर का वर्गमूल खोजें
print('Square Root is: ' + str(my_dec.sqrt()))
# डेसीमल नंबर के लिए e^x खोजें
print('e^x is: ' + str(my_dec.exp()))
आउटपुट
25.3599999999999994315658113919198513031005859375 Square Root is: 5.035871324805668565859161094 e^x is: 103206740212.7314661465187086
लॉगरिदमिक फंक्शन्स
डेसीमल मॉड्यूल में कुछ लॉगरिदमिक फंक्शन्स हैं। यहां हम उनमें से दो पर चर्चा कर रहे हैं। पहला ln() मेथड है। यह मेथड डेसीमल नंबर का प्राकृतिक लॉगरिदम खोजने के लिए उपयोग किया जाता है।
दूसरा मेथड log10() मेथड है। यह मेथड बेस 10 होने पर लॉगरिदमिक मान खोजने के लिए उपयोग किया जाता है।
उदाहरण कोड
# ln() और log10() मेथड्स का प्रदर्शन
import decimal
my_dec = decimal.Decimal(25.36)
print(my_dec)
# बेस e के साथ लॉगरिदमिक मान खोजें
print('ln(x) is: ' + str(my_dec.ln()))
# बेस 10 के साथ लॉगरिदमिक मान खोजें
print('log(x) is: ' + str(my_dec.log10()))
आउटपुट
25.3599999999999994315658113919198513031005859375 ln(x) is: 3.233173129569025152000878282 log(x) is: 1.404149249209695070459909761
as_tuple() और fma() मेथड
as_tuple मेथड का उपयोग डेसीमल को तीन तत्वों के साथ एक टपल के रूप में प्रस्तुत करने के लिए किया जाता है। तत्व हैं साइन, डिजिट्स और एक्सपोनेंट मान। साइन फील्ड में जब संख्या 0 होती है, तो इसका मतलब है कि डेसीमल पॉजिटिव है, जब यह 1 होती है, तो यह नेगेटिव नंबर को दर्शाता है।
fma() मेथड को फ्यूज्ड मल्टीप्लिकेशन एंड एड के रूप में जाना जाता है। यदि हम fma(x, y) का उपयोग करते हैं तो यह (नंबर * x) + y की गणना करेगा। इस मामले में (नंबर*x) भाग को राउंड ऑफ नहीं किया जाता है।
उदाहरण कोड
# as_tuple() और fma() मेथड्स का प्रदर्शन
import decimal
my_dec1 = decimal.Decimal(5.3)
print(my_dec1)
my_dec2 = decimal.Decimal(-9.23)
print(my_dec2)
# डेसीमल को टपल के रूप में दिखाएं
print('\nmy_dec1 as tuple: ' + str(my_dec1.as_tuple()))
print('\nmy_dec2 as tuple: ' + str(my_dec2.as_tuple()))
# फ्यूज्ड मल्टीप्लाई एंड एड करें
print('\n(x*5)+8 is: ' + str(my_dec1.fma(5, 8)))
आउटपुट
5.29999999999999982236431605997495353221893310546875 -9.230000000000000426325641456060111522674560546875 my_dec1 as tuple: DecimalTuple(sign=0, digits=(5, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 2, 2, 3, 6, 4, 3, 1, 6, 0, 5, 9, 9, 7, 4, 9, 5, 3, 5, 3, 2, 2, 1, 8, 9, 3, 3, 1, 0, 5, 4, 6, 8, 7, 5), exponent=-50) my_dec2 as tuple: DecimalTuple(sign=1, digits=(9, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 6, 3, 2, 5, 6, 4, 1, 4, 5, 6, 0, 6, 0, 1, 1, 1, 5, 2, 2, 6, 7, 4, 5, 6, 0, 5, 4, 6, 8, 7, 5), exponent=-48) (x*5)+8 is: 34.49999999999999911182158030
compare() मेथड
यह तुलना मेथड दो डेसीमल नंबरों की तुलना करने के लिए है। जब संख्याएं समान होती हैं, तो यह 0 लौटाएगा, अन्यथा, जब पहली संख्या बड़ी होती है, तो यह +1 देगा, और जब पहला आर्गुमेंट छोटा होता है, तो यह -1 लौटाएगा।
उदाहरण कोड
# compare() मेथड का प्रदर्शन
import decimal
# तुलना करें जब दोनों समान हों
print('Compare value: ' + str(decimal.Decimal(-5.3).compare(decimal.Decimal(-5.3))))
# तुलना करें जब पहला छोटा हो
print('Compare value: ' + str(decimal.Decimal(-5.3).compare(decimal.Decimal(9.26))))
# तुलना करें जब पहला बड़ा हो
print('Compare value: ' + str(decimal.Decimal(-5.3).compare(decimal.Decimal(-13.25))))
आउटपुट
Compare value: 0 Compare value: -1 Compare value: 1
कुछ कॉपी फंक्शन्स
डेसीमल नंबरों को दूसरे डेसीमल ऑब्जेक्ट में कॉपी करने के लिए कुछ अलग मेथड्स हैं। पहला मेथड copy_abs() है। इसका उपयोग डेसीमल नंबर से निरपेक्ष मान प्राप्त करने के लिए किया जाता है। दूसरा मेथड copy_negate() है, इसका उपयोग वास्तविक संख्या को नकारने के बाद डेसीमल नंबर को कॉपी करने के लिए किया जाता है। तीसरा फंक्शन copy_sign() है। यह मेथड दूसरे आर्गुमेंट से साइन लेकर पहले आर्गुमेंट को प्रिंट करता है।
उदाहरण कोड
# copy_abs(), copy_negate() और copy_sign() का प्रदर्शन
import decimal
my_dec = decimal.Decimal(-25.36)
print(my_dec)
# निरपेक्ष मान कॉपी करें
temp_dec = my_dec.copy_abs()
print('Absolute is: ' + str(temp_dec))
# नेगेटिव मान कॉपी करें
my_dec = decimal.Decimal(7.26)
temp_dec = my_dec.copy_negate()
print('Negate of 7.26 is: ' + str(temp_dec))
# दूसरे आर्गुमेंट से पहले में साइन कॉपी करें
my_dec = decimal.Decimal(-25.36)
temp_dec = my_dec.copy_sign(decimal.Decimal(12.5))
print('Copy sign from second argument: ' + str(temp_dec))
आउटपुट
-25.3599999999999994315658113919198513031005859375 Absolute is: 25.3599999999999994315658113919198513031005859375 Negate of 7.26 is: -7.2599999999999997868371792719699442386627197265625 Copy sign from second argument: 25.3599999999999994315658113919198513031005859375
max और min मेथड्स
max और min दो सरल मेथड्स हैं। इनका उपयोग क्रमशः दो संख्याओं के बीच अधिकतम या न्यूनतम खोजने के लिए किया जाता है।
उदाहरण कोड
# max() और min() मेथड्स का प्रदर्शन
import decimal
my_dec1 = decimal.Decimal(5.3)
print(my_dec1)
my_dec2 = decimal.Decimal(-9.23)
print(my_dec2)
# न्यूनतम और अधिकतम दिखाएं
print('Minimum: ' + str(my_dec1.min(my_dec2)))
print('Maximum: ' + str(my_dec2.max(my_dec1)))
आउटपुट
5.29999999999999982236431605997495353221893310546875 -9.230000000000000426325641456060111522674560546875 Minimum: -9.230000000000000426325641456 Maximum: 5.299999999999999822364316060