ডেসিমাল

ডেসিমাল ডেটা টাইপ পাইথনের কোন বিল্ট ইন ডেটা টাইপ না। এটি পাইথন স্ট্যান্ডার্ড লাইব্রেরি থেকে ইম্পোর্ট করতে হয়। মূলত গানিতিক হিসেবে সূক্ষাতিসূক্ষ্য ভুল এড়ানোর জন্য এ ডেটা টাইপ ব্যবহার করা হয়।

>>> from decimal import *
>>> a = Decimal(3.4)
>>> a
Decimal('3.399999999999999911182158029987476766109466552734375')

3.4 এর প্রকৃত মান হচ্ছে ডেসিমাল ভ্যালুটি। এ সংখ্যাটিকে নির্দিষ্ট অংক পর্যন্ত আউট পুট পেতে quantize () ফাংশন ব্যবহার করতে হবে।

>>> a.quantize(Decimal('0.00'))
Decimal('3.40')
>>> from decimal import *
>>> Decimal(3.4) + Decimal(4.3)
Decimal('7.699999999999999733546474090')
>>> getcontext()
Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[Inexact, FloatOperation, Rounded], traps=[InvalidOperation, DivisionByZero, Overflow])

এখানে ডেসিমাল ডেটা টাইপ একটি বিশাল সংখ্যা রিটার্ণ করেছে। কিন্তু সবসময় এত বড় সংখ্যার প্রয়োজন হয় না । getcontext() ফাংশনের prec প্যারামিটার ব্যবহার করে আমরা নিজের ইচ্ছে মত সংখ্যা নির্ধারণ করে দিতে পারি। তবে এক্ষেত্রে দশমিকের আগের সংখ্যা ও prec এর ভ্যালু’র ভেতরে গণনা করা হয়।

>>> getcontext().prec = 5
>>> Decimal(3.4) + Decimal(4.3)
Decimal('7.7000')
>>> getcontext()
Context(prec=5, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[Inexact, FloatOperation, Rounded], traps=[InvalidOperation, DivisionByZero, Overflow])

লক্ষ্য কর getcontext() ফাংশনের prec প্যারামিটারের মান পরিবর্তন হয়ে গেছে।

Last updated