উত্তর:
এটি পূর্ণসংখ্যা বিভাগ করছে। আপনি Floatযোগ করে একটি সংখ্যা তৈরি করতে পারেন .0:
9.0 / 5 #=> 1.8
9 / 5.0 #=> 1.8
.to_fযদি আপনি দুটি ভেরিয়েবল যে পূর্ণসংখ্যার থাকে, যেমন বিভাজক করছি উত্তর উত্তম a.to_f / b। আপনি যদি আক্ষরিক অর্থে দুটি হার্ড-কোডেড পূর্ণসংখ্যা ভাগ (যা সম্ভবত অদ্ভুত), তবে ব্যবহার 9.0 / 5করা ভাল।
এটি পূর্ণসংখ্যা বিভাগ করছে। আপনি to_fজিনিসগুলিকে ভাসমান-পয়েন্ট মোডে জোর করতে ব্যবহার করতে পারেন :
9.to_f / 5 #=> 1.8
9 / 5.to_f #=> 1.8
আপনার মানগুলি আক্ষরিক পরিবর্তে পরিবর্তনশীল হলে এটিও কাজ করে। একটি মানকে একটি ফ্লোটে রূপান্তর করা পুরো অভিব্যক্তিটিকে ভাসমান বিন্দুতে জোর করতে যথেষ্ট।
এর Numeric#fdivপরিবর্তে আপনি ব্যবহার করতে পারেন এমন পদ্ধতিও রয়েছে:
9.fdiv(5) #=> 1.8
আপনি রুবি mathnমডিউলটি অন্তর্ভুক্ত করতে পারেন ।
require 'mathn'
এইভাবে, আপনি বিভাগটি স্বাভাবিকভাবে তৈরি করতে সক্ষম হতে চলেছেন।
1/2 #=> (1/2)
(1/2) ** 3 #=> (1/8)
1/3*3 #=> 1
Math.sin(1/2) #=> 0.479425538604203
এইভাবে, আপনি সঠিক বিভাগ (ক্লাস রেশনাল) পাবেন যতক্ষণ না আপনি এমন কোনও অপারেশন প্রয়োগ করার সিদ্ধান্ত নেন যা উদাহরণস্বরূপ যুক্তিযুক্ত হিসাবে প্রকাশ করা যায় না Math.sin।
পরিবর্তন 5করার জন্য 5.0। আপনি পূর্ণসংখ্যা বিভাগ পেয়ে যাচ্ছেন।
ফিক্সনাম # টু_আর এখানে উল্লেখ করা হয়নি, এটি রুবি ১.৯ থেকে প্রবর্তিত হয়েছিল। এটি ফিকনামকে যৌক্তিক আকারে রূপান্তর করে। নীচে এর ব্যবহারের উদাহরণ দেওয়া আছে। যতক্ষণ না ব্যবহৃত সমস্ত সংখ্যা ফিক্সনাম হয় ততক্ষণ এটি নির্ভুল বিভাগ দিতে পারে।
a = 1.to_r #=> (1/1)
a = 10.to_r #=> (10/1)
a = a / 3 #=> (10/3)
a = a * 3 #=> (10/1)
a.to_f #=> 10.0
উদাহরণস্বরূপ যেখানে যুক্তিযুক্ত সংখ্যায় চালিত একটি ভাসা ফলাফল প্রবাহিত করতে ভাসতে পারে।
a = 5.to_r #=> (5/1)
a = a * 5.0 #=> 25.0
def method; a - b/8; endপদ্ধতি থেকে গণনার ফলাফলটি ফিরিয়ে আনবে, কারণ কোনও পদ্ধতি কলের সর্বশেষ প্রকাশটি হ'ল প্রত্যাবর্তন মান।