কম্পিউটার

পাইথনে দশমিক ফিক্সড পয়েন্ট এবং ফ্লোটিং পয়েন্ট পাটিগণিত


ফ্লোটিং পয়েন্ট সংখ্যাগুলি মেমরিতে ভিত্তি 2 বাইনারি ভগ্নাংশ হিসাবে উপস্থাপন করা হয়। ফলস্বরূপ ফ্লোটিং পয়েন্ট গাণিতিক ক্রিয়াকলাপগুলি মাঝে মাঝে অদ্ভুত হতে পারে। 0.1 এবং 0.2 এর যোগ নিম্নলিখিত হিসাবে বিরক্তিকর ফলাফল দিতে পারে −

>>> 0.1 + 0.20.30000000000000004

আসলে এটি বাইনারি ফ্লোটিং পয়েন্ট প্রতিনিধিত্বের প্রকৃতি। এটি যেকোনো প্রোগ্রামিং ভাষায় প্রচলিত। পাইথন দ্রুত এবং সঠিকভাবে গোলাকার ফ্লোটিং-পয়েন্ট গাণিতিক সম্পাদন করার জন্য একটি দশমিক মডিউল প্রদান করে।

দশমিক মডিউলটি ফ্লোটিং পয়েন্টগুলিকে উপস্থাপন করার জন্য ডিজাইন করা হয়েছে যেভাবে কেউ তাদের আচরণ করতে চায়, এবং গাণিতিক অপারেশন ফলাফল প্রত্যাশার সাথে সামঞ্জস্যপূর্ণ। উপস্থাপনা এবং অপারেশনের নির্ভুল স্তর 28টি জায়গা পর্যন্ত সেট করা যেতে পারে।

দশমিক মডিউল দশমিক শ্রেণীকে সংজ্ঞায়িত করে। দশমিক অবজেক্টকে একটি পূর্ণসংখ্যা, সাংখ্যিক উপস্থাপনা সহ একটি স্ট্রিং বা প্যারামিটার হিসাবে তার কন্সট্রাক্টরকে একটি টিপল দিয়ে ঘোষণা করা যেতে পারে

>>> দশমিক আমদানি থেকে দশমিক>>> d1 =দশমিক(10)>>>> d1ডেসিমাল('10')>>> d2 =দশমিক('10')>>> d2ডেসিমাল('10')

একটি টিপল প্যারামিটারে তিনটি উপাদান রয়েছে, চিহ্ন (ধনাত্মক জন্য 0, ঋণাত্মক জন্য 1), অঙ্কের একটি টিপল এবং সূচক। যেমন

>>> d3 =দশমিক((1, (1, 2,3, 4), 2))>>> d3 দশমিক('-1.234E+5')

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

>>> দশমিক আমদানি দশমিক থেকে, getcontext>>> getcontext().prec =5>>> d3 =Decimal(10)>>> d4 =Decimal(3)>>> d3/d4Decimal('3.3333' )

প্রসঙ্গগুলি হল গাণিতিক ক্রিয়াকলাপের পরিবেশ যা নির্ভুলতা নির্ধারণ এবং রাউন্ডিং নিয়মগুলি সংজ্ঞায়িত করার পাশাপাশি সূচকগুলির জন্য পরিসীমা সীমাবদ্ধ করতে ব্যবহৃত হয়৷

decimal.getcontext() − সক্রিয় থ্রেডের জন্য বর্তমান প্রসঙ্গটি ফেরত দিন।

decimal.setcontext(c) − সক্রিয় থ্রেডের জন্য বর্তমান প্রসঙ্গ সেট করুন c.

নিম্নলিখিত রাউন্ডিং মোড ধ্রুবকগুলি দশমিক মডিউল −

-এ সংজ্ঞায়িত করা হয়েছে ৷ ৷ ৷
ROUND_CEILING অনন্তের দিকে বৃত্তাকার।
ROUND_DOWN শূন্যের দিকে বৃত্তাকার।
ROUND_FLOOR -অনন্তের দিকে বৃত্তাকার।
ROUND_HALF_DOWN শূণ্যের দিকে যাওয়া বন্ধনগুলির সাথে কাছাকাছি থেকে বৃত্তাকার৷
ROUND_HALF_EVEN কাছাকাছি থেকে বৃত্তাকার এবং টাই সবচেয়ে কাছের জোড় পূর্ণসংখ্যাতে যাচ্ছে৷
ROUND_HALF_UP শূন্য থেকে দূরে থাকা বন্ধনগুলির সাথে কাছাকাছি থেকে বৃত্তাকার৷
ROUND_UP শূন্য থেকে দূরে।
ROUND_05UP শূন্য থেকে রাউন্ড অ্যাওয়ে যদি শূন্যের দিকে রাউন্ডিং করার পর শেষ ডিজিটটি 0 বা 5 হত; অন্যথায় শূন্যের দিকে বৃত্তাকার।

নিম্নলিখিত কোড স্নিপেট প্রসঙ্গ বস্তুর নির্ভুলতা এবং রাউন্ডিং প্যারামিটার ব্যবহার করে

>>> দশমিক আমদানি থেকে *>>> getcontext().prec =5>>> getcontext(). rounding =ROUND_UP>>> d1 =Decimal(100)>>> d2 =দশমিক(6)>>> d1/d2ডেসিমাল('16.667')

দশমিক বস্তুর উপর গাণিতিক ক্রিয়াকলাপ

সাধারণ পাটিগণিতের সমস্ত ক্রিয়াকলাপ দশমিক বস্তুতে করা হয়, অনেকটা সাধারণ ভাসার মতো।

>>> a =দশমিক('2.4')>>> b =দশমিক('1.2')>>> a + bDecimal('3.6')>>> a - bDecimal('1.2')>>> b - aDecimal('-1.2')>>> a * bDecimal('2.88')>>> a / bDecimal('2')

পাটিগণিত অপারেশন এক দশমিক অপারেন্ড এবং একটি পূর্ণসংখ্যা অপারেন্ডে করা যেতে পারে। তবে সাধারণ ফ্লোটিং পয়েন্ট অবজেক্টের অপারেশনগুলি অবৈধ৷

>>> a =দশমিক('2.4')>>> c =2.1>>> a + cTraceback (সর্বশেষ কল সর্বশেষ):ফাইল "", লাইন 1, <মডিউল>a-এ +cTypeError:+:'decimal.Decimal' এবং 'float'
এর জন্য অসমর্থিত অপারেন্ড প্রকার(গুলি)

সমস্ত গাণিতিক ক্রিয়াকলাপের ক্ষেত্রে একই ব্যতিক্রম ঘটে।

দশমিক অবজেক্টের সাথে অবশিষ্ট (%) অপারেটরের আচরণ স্বাভাবিক সাংখ্যিক প্রকারের থেকে সামান্য ভিন্ন। এখানে, ফলাফলের চিহ্নটি হল ভাজকের পরিবর্তে লভ্যাংশ

>>> -7%32>>> 7%-3-2>>> দশমিক(-7) % দশমিক(3)ডেসিমেল('-1')>>> দশমিক(7) % দশমিক(- 3) দশমিক ('1')

decimal.from_float() − এই ফাংশনটি সঠিক বাইনারি উপস্থাপনা সহ সাধারণ ফ্লোটকে দশমিক অবজেক্টে রূপান্তর করে। ফলস্বরূপ from_float(0.1) এবং দশমিক ('0.1') এক নয়৷

>>> d1 =দশমিক('0.1')>>> d2 =Decimal.from_float(0.1)>>> d1,d2(দশমিক('0.1'), দশমিক('0.10000000000000055511151212474515124745515128154741512852455511512818524745551115123185251527) 

এই নিবন্ধটি পাইথন স্ট্যান্ডার্ড লাইব্রেরির দশমিক মডিউলে সংজ্ঞায়িত কার্যকারিতার ব্যবহার ব্যাখ্যা করে।


  1. পাইথনে =+ এবং +=কি করে?

  2. কিভাবে পাইথনে তারিখ এবং সময় ফর্ম্যাট করা যায়?

  3. কিভাবে Python বর্তমান তারিখ এবং সময় পেতে?

  4. পাইথনে স্থির প্রস্থে একটি ভাসমান সংখ্যা কীভাবে ফর্ম্যাট করবেন?