পাইথনের প্রয়োগের জন্য সত্যই সুনির্দিষ্ট নয় তবে দশমিক স্ট্রিং ফাংশনে কোনও ফ্লোটে প্রয়োগ করা উচিত।
একটি ভাসমান পয়েন্ট সংখ্যাটি মূলত একটি বাইনারি সংখ্যা, তবে বৈজ্ঞানিক স্বরলিপিতে উল্লেখযোগ্য ব্যক্তির একটি নির্দিষ্ট সীমা থাকে।
বেসের সাথে ভাগ না করা এমন একটি মৌলিক সংখ্যা ফ্যাক্টর রয়েছে এমন কোনও সংখ্যার বিপরীতে সর্বদা একটি পুনরাবৃত্তি ডট পয়েন্ট উপস্থাপনার ফলস্বরূপ। উদাহরণস্বরূপ 1/7 এর একটি প্রধান উপাদান রয়েছে, 7, যা 10 এর সাথে ভাগ করা হয় না এবং এর ফলে বারবারে দশমিক প্রতিনিধিত্ব হয় এবং একই ঘটনাটি 10/10-এ মূল কারণগুলি 2 এবং 5 এর সাথে ভাগ করে নেওয়া হয় না ; এর অর্থ এই যে 0.1 ডট পয়েন্টের পরে সীমাবদ্ধ বিট দ্বারা সঠিকভাবে প্রকাশ করা যায় না।
যেহেতু ০.১ এর কোনও সঠিক উপস্থাপনা নেই, একটি ফাংশন যা প্রতীককে দশমিক পয়েন্ট স্ট্রিংয়ে রূপান্তরিত করে সাধারণত কিছু নির্দিষ্ট মানগুলিকে আনুমানিক করার চেষ্টা করবে যাতে তারা 0.1000000000004121 এর মতো অনাকাঙ্ক্ষিত ফলাফল না পায়।
যেহেতু ভাসমান বিন্দু বৈজ্ঞানিক স্বরলিপিতে থাকে তাই বেসের শক্তির দ্বারা যে কোনও গুণগুলি কেবল সংখ্যার ঘনিষ্ঠ অংশকে প্রভাবিত করে। দশমিক স্বরলিপির জন্য উদাহরণস্বরূপ 1.231e + 2 * 100 = 1.231e + 4, এবং একইভাবে, বাইনারি স্বরলিপিতে 1.00101010e11 * 100 = 1.00101010e101। যদি আমি বেসের একটি শক্তি না দিয়ে গুণ করি তবে উল্লেখযোগ্য সংখ্যাগুলিও প্রভাবিত হবে। উদাহরণস্বরূপ 1.2e1 * 3 = 3.6e1
ব্যবহৃত অ্যালগরিদমের উপর নির্ভর করে, এটি কেবলমাত্র উল্লেখযোগ্য পরিসংখ্যানের ভিত্তিতে সাধারণ দশমিকের অনুমান করার চেষ্টা করতে পারে। ০.০ এবং ০.৪ উভয়েরই বাইনারিতে একই তাৎপর্যপূর্ণ চিত্র রয়েছে, কারণ তাদের ভাসমানগুলি যথাক্রমে যথাক্রমে (8/5) (2 ^ -4) এবং (8/5) (2 ^ -6) কেটে নেওয়া হয়। যদি অ্যালগরিদম 8/5 সিগফিগ প্যাটার্নকে দশমিক 1.6 হিসাবে চিহ্নিত করে, তবে এটি 0.1, 0.2, 0.4, 0.8 ইত্যাদিতে কাজ করবে etc. এটিতে অন্য সংমিশ্রণের জন্য ম্যাজিক সিগফিগ ধরণ থাকতে পারে যেমন ফ্লোট 10 দ্বারা বিভক্ত ফ্লোট 3 এবং অন্যান্য যাদু নিদর্শনগুলি 10 দ্বারা বিভাগ দ্বারা সংস্থাগুলি গঠনের সম্ভাবনা রয়েছে।
3 * 0.1 এর ক্ষেত্রে শেষ কয়েকটি উল্লেখযোগ্য পরিসংখ্যান সম্ভবত ফ্লোট 10 দ্বারা 3 টি বিভাজক থেকে পৃথক হবে, যার ফলে অ্যালগরিদম যথাযথ ক্ষতির জন্য সহনশীলতার উপর নির্ভর করে 0.3 ধ্রুবকের জন্য যাদু সংখ্যাটি সনাক্ত করতে ব্যর্থ হয়।
সম্পাদনা করুন:
https://docs.python.org/3.1/tutorial/floatingPoint.html
মজার বিষয় হল, অনেকগুলি বিভিন্ন দশমিক সংখ্যা রয়েছে যা একই নিকটতম আনুমানিক বাইনারি ভগ্নাংশ ভাগ করে। উদাহরণস্বরূপ, 0.1 এবং 0.1000000000000000001 এবং 0.1000000000000000055511151231257827021181583404541015625 সবগুলিই প্রায় 3602879701896397/2 ** 55 দ্বারা সংযুক্ত করা হয়েছে। যেহেতু এই দশমিক মানগুলি একই সান্নিধ্যে ভাগ করে চলেছে (ততক্ষণে যেকোন একটি এক্সট্রিশেন্ট পূর্ববর্তী প্রদর্শিত হবে) (এক্সটারেন্ট পূর্ববর্তী অবস্থায় প্রদর্শিত হবে) ) == এক্স
নির্ভুল ক্ষতির জন্য সহিষ্ণুতা নেই, যদি ফ্লোট এক্স (০.০) ভাসা y (0.1 * 3) এর ঠিক সমান হয় না, তবে repr (x) repr (y) এর ঠিক সমান নয়।