প্রোগ্রামিংয়ের মৌলিক ধারণা/ফ্লোটিং-পয়েন্ট ডেটা টাইপ
সাধারণ বিবরণ
[সম্পাদনা]একটি ফ্লোটিং-পয়েন্ট ডেটা টাইপ বাস্তব সংখ্যাগুলির একটি সাধারণ উপস্থাপনা ব্যবহার করে, যা প্রায়ই একটি নির্দিষ্ট সীমিত সংখ্যক ডিজিটের মাধ্যমে মানের আনুমানিক হিসাব দেয় এবং এটি একটি এক্সপোনেন্ট ব্যবহার করে একটি নির্দিষ্ট বেসে স্কেল করা হয়, যেমন ১০। এর ফলে, এটি পরিসরের মধ্যে এবং সঠিকতার মধ্যে একটি সমঝোতা তৈরি করে। এই কারণে, ফ্লোটিং-পয়েন্ট গণনা সাধারণত এমন সিস্টেমে ব্যবহৃত হয় যেখানে খুব ছোট এবং খুব বড় বাস্তব সংখ্যাগুলির প্রয়োজন হয়, এবং যা দ্রুত প্রসেসিং সময়ের জন্য উপযুক্ত।
আলোচনা
[সম্পাদনা]ফ্লোটিং-পয়েন্ট ডেটা টাইপ একটি ডেটা টাইপের পরিবার হিসেবে পরিচিত, যা একে অপরের মতো আচরণ করে এবং শুধুমাত্র তাদের ডোমেইনের আকার (অর্থাৎ অনুমোদিত মানগুলির পরিসর) নিয়ে পার্থক্য থাকে। এই ডেটা টাইপটি ভগ্নাংশ সহ সংখ্যা মান উপস্থাপন করার জন্য ব্যবহৃত হয়। ফ্লোটিং-পয়েন্ট ডেটা টাইপকে প্রযুক্তিগতভাবে দুটি পূর্ণসংখ্যার মান হিসেবে সংরক্ষিত করা হয়: একটি মান্টিসা এবং একটি এক্সপোনেন্ট। ফ্লোটিং-পয়েন্ট ডেটা টাইপের পরিবারটি বিভিন্ন প্রোগ্রামিং ভাষায় একই ধরনের বৈশিষ্ট্য প্রদর্শন করে এবং একইভাবে কাজ বা আচরণ করে।
ফ্লোটিং-পয়েন্ট ডেটা টাইপের প্রধান বৈশিষ্ট্য হলো যে এটি সবসময় সাইনযুক্ত থাকে, অর্থাৎ এটি ঋণাত্মক এবং ধনাত্মক উভয় ধরনের মান সংরক্ষণ করতে সক্ষম। এর বিপরীতে, পূর্ণসংখ্যা ডেটা টাইপটি কখনও কখনও অ-সাইনযুক্ত হতে পারে, যা শুধুমাত্র ধনাত্মক মান সংরক্ষণ করে। ফ্লোটিং-পয়েন্ট ডেটা টাইপের জন্য ডোমেইন (পারামিটার এর পরিসর) বিভিন্ন হতে পারে, কারণ এটি খুব বড় বা খুব ছোট সংখ্যা উপস্থাপন করতে পারে, যা অন্যান্য ডেটা টাইপের তুলনায় আরও বিস্তৃত পরিসরের মান ধারণ করতে সক্ষম।
প্রকৃত মানের পরিবর্তে, ফ্লোটিং-পয়েন্টের সঠিকতা (precision) একটি গুরুত্বপূর্ণ বিষয়। সঠিকতা নির্ভর করে সংরক্ষিত বাইটের সংখ্যা ও তার ভিতরে থাকা মান্টিসা এবং এক্সপোনেন্টের আকারের উপর। যত বেশি বাইট সংরক্ষণে থাকে, তত বড় হয় মান্টিসা এবং এক্সপোনেন্ট, ফলে মানের সঠিকতা (precision) বৃদ্ধি পায়। এর মাধ্যমে আরো ছোট বা বড় সংখ্যার সঠিকভাবে উপস্থাপনা সম্ভব হয়, যা অন্যান্য ডেটা টাইপের ক্ষেত্রে সম্ভব নয়।
ফ্লোটিং-পয়েন্ট ডেটা টাইপের সঠিকতা এবং পরিসর উপযুক্তভাবে ব্যবহার করার জন্য প্রোগ্রামিং ভাষাগুলি তাদের নিজস্ব সীমাবদ্ধতা এবং সমাধান প্রদান করে, যার মাধ্যমে আমরা দ্রুত এবং সঠিক গণনা করতে পারি, বিশেষ করে গণনা যেখানে খুব ছোট বা বড় সংখ্যা ব্যবহৃত হয়।
| ভাষা | সংরক্ষিত শব্দ | আকার | সঠিকতা | পরিসর |
|---|---|---|---|---|
| C++ | float
|
৩২ বিট / ৪ বাইট | ৭ দশমিক ডিজিট | ±৩.৪০২৮২৩৪৭ই+৩৮ |
| C++ | double
|
৬৪ বিট / ৮ বাইট | ১৫ দশমিক ডিজিট | ±১.৭৯৭৬৯৩১৩৪৮৬২৩১৫৭০ই+৩০৮ |
| C# | float
|
৩২ বিট / ৪ বাইট | ৭ দশমিক ডিজিট | ±৩.৪০২৮২৩৪৭ই+৩৮ |
| C# | double
|
৬৪ বিট / ৮ বাইট | ১৫ দশমিক ডিজিট | ±১.৭৯৭৬৯৩১৩৪৮৬২৩১৫৭০ই+৩০৮ |
| Java | float
|
৩২ বিট / ৪ বাইট | ৭ দশমিক ডিজিট | ±৩.৪০২৮২৩৪৭ই+৩৮ |
| Java | double
|
৬৪ বিট / ৮ বাইট | ১৫ দশমিক ডিজিট | ±১.৭৯৭৬৯৩১৩৪৮৬২৩১৫৭০ই+৩০৮ |
| JavaScript | Number
|
৬৪ বিট / ৮ বাইট | ১৫ দশমিক ডিজিট | ±১.৭৯৭৬৯৩১৩৪৮৬২৩১৫৭০ই+৩০৮ |
| Python | float()
|
৬৪ বিট / ৮ বাইট | ১৫ দশমিক ডিজিট | ±১.৭৯৭৬৯৩১৩৪৮৬২৩১৫৭০ই+৩০৮ |
| Swift | Float
|
৩২ বিট / ৪ বাইট | ৭ দশমিক ডিজিট | ±৩.৪০২৮২৩৪৭ই+৩৮ |
| Swift | Double
|
৬৪ বিট / ৮ বাইট | ১৫ দশমিক ডিজিট | ±১.৭৯৭৬৯৩১৩৪৮৬২৩১৫৭০ই+৩০৮ |
ফ্লোটিং-পয়েন্ট মানের সাথে অপারেশন কনভার্ট করার সময়, আপনি চাইলে বেশিরভাগ দশমিক স্থান দেখতে পারেন। আমরা round ফাংশনটি ব্যবহার করে দশমিক স্থান সীমিত করতে পারি। উদাহরণস্বরূপ, round(1.12356,2) আপনাকে ১.১২ দিবে।Python.org: Built-in Functions
মূল শব্দসমূহ
[সম্পাদনা]- ডাবল
- ফ্লোটিং-পয়েন্ট পরিবারের সবচেয়ে ব্যবহৃত ডেটা টাইপ।
- মান্টিসা এক্সপোনেন্ট
- একটি ফ্লোটিং-পয়েন্ট মানের দুটি পূর্ণসংখ্যা অংশ।
- সঠিকতা
- ফ্লোটিং-পয়েন্ট মানগুলির ডোমেইনে বৃহত্তর বা ছোট স্টোরেজ এলাকা (বাইটে) দেওয়ার প্রভাব।