যে কোনও বাইনারি ভাসমান পয়েন্ট দশমিক ঠিক হ'ল বিন্যাস করা যায়। ফলস্বরূপ স্ট্রিং কিছুটা দীর্ঘ হতে পারে, তবে এটি সম্ভব। ইন ফ্লোটিং পয়েন্ট উপর আমার প্রবন্ধে আমি স্পষ্টতা গুরুত্ব আবরণ, এবং এখন আমি এই ফাংশন চাই। এই চ্যালেঞ্জটি হ'ল একটি প্রোগ্রাম বা ফাংশন লিখুন যা ইনপুট হিসাবে একটি ভাসমান পয়েন্ট মান নেয় এবং আউটপুট হিসাবে একটি নির্দিষ্ট দশমিক স্ট্রিং বিন্যাস করে।
আমরা সঠিক ভাসমান পয়েন্ট সংখ্যাগুলির সাথে কাজ করছি তা নিশ্চিত করার জন্য অবশ্যই প্রোগ্রামের ইনপুট হিসাবে একটি সুনির্দিষ্ট বিন্যাস সরবরাহ করতে হবে। এই ফর্ম্যাটটি দুটি পূর্ণসংখ্যার হবে Significand Exponent
, যেখানে আসল ভাসমান পয়েন্টের মান Significand * 2 ^ Exponent
। নোট করুন যে কোনওটি মান negativeণাত্মক হতে পারে।
সুনির্দিষ্ট:
- কমপক্ষে একটি 32-বিট ফ্লোটের পরিসর এবং যথার্থতা অবশ্যই সমর্থন করা উচিত (কোনও ইনপুট এর বাইরে যাবে না)
- দশমিক বিন্যাসিত মানটি অবশ্যই একটি যথাযথ উপস্থাপনা হতে পারে (ভাসতে ফিরে সঠিক রাউন্ড-টিপ গ্যারান্টির জন্য যথেষ্ট পরিমাণে যথেষ্ট ভাল নয়)
- পর্যাপ্ত সঠিক বা দ্রুত পর্যাপ্ত (প্রাক্তন
printf
:) হতে আমরা স্ট্যান্ডার্ড লাইব্রেরি ফ্লোটিং পয়েন্ট ফর্ম্যাটিং ফাংশনগুলিকে বিশ্বাস করি না এবং সুতরাং সেগুলি ব্যবহার নাও করা যেতে পারে। আপনাকে অবশ্যই ফর্ম্যাটিং করতে হবে। ইন্টিগ্রাল ফর্ম্যাটিং / রূপান্তর ফাংশন অনুমোদিত। - সামনে
.
কোনও সংখ্যার উপাদান না থাকলে প্রয়োজনীয় অগ্রণী শূন্য ব্যতীত কোনও শীর্ষস্থানীয় বা পিছনে জিরো নাও থাকতে পারে - একটি ফাংশন, বা পুরো প্রোগ্রাম অনুমোদিত,
উদাহরণ:
1 -2 => 0.25
17 -3 => 2.125
-123 11 => -251904
17 50 => 19140298416324608
23 -13 => 0.0028076171875
3 120 => 3987683987354747618711421180841033728
3 -50 => 0.00000000000000266453525910037569701671600341796875
-3 -50 => -0.00000000000000266453525910037569701671600341796875
10 -2 => 2.5
-12345 -3 => -1543.125
0 0 => 0
161 -4 => 10.0625
512 -3 => 64
সংক্ষিপ্ততম কোড জিতেছে।
.0
?
0.abc
অগ্রণী শূন্য না হয়, তবে abc.0
এটি কোনও অনুসরণযোগ্য নয়।
.0
ভাসমান পয়েন্ট সংখ্যার সাথে ডিল করার সময় পুরো সংখ্যাটি সর্বদা শেষ করার জন্য এটিও কনভেনশন । উদাহরণস্বরূপ পাইথন দেখুন: str(1.0) == '1.0'
বনাম str(1) == '1'
। আপনার যুক্তি এখনও বেমানান।