Rust:
সংখ্যা নির্ণয়
কিভাবে:
রাস্ট বৃত্তাকার করা খুবই সহজ করে তোলে। f32
অথবা f64
টাইপের জন্য এই পদ্ধতিগুলি দেখুন:
fn main() {
let num = 2.34567;
// নিকটতম পূর্ণ সংখ্যায় বৃত্তাকার
let round = num.round();
println!("Round: {}", round); // Round: 2
// Floor - সংখ্যাটির থেকে কম বা সমান বৃহত্তম পূর্ণাঙ্গ
let floor = num.floor();
println!("Floor: {}", floor); // Floor: 2
// Ceil - সংখ্যাটির থেকে বেশি বা সমান ক্ষুদ্রতম পূর্ণাঙ্গ
let ceil = num.ceil();
println!("Ceil: {}", ceil); // Ceil: 3
// Truncate - দশমিক অংশ ছাড়া পূর্ণাঙ্গ অংশ
let trunc = num.trunc();
println!("Truncate: {}", trunc); // Truncate: 2
// দশের নির্দিষ্ট গুণকের নিকটতম মানে বৃত্তাকার
let multiple_of_ten = (num * 100.0).round() / 100.0;
println!("2 দশমিক স্থান পর্যন্ত বৃত্তাকার: {}", multiple_of_ten); // 2 দশমিক স্থান পর্যন্ত বৃত্তাকার: 2.35
}
গভীর ডুব
ঐতিহাসিকভাবে, অসীম দশমিক অথবা অযৌক্তিক নম্বরগুলি সীমিত ডিজিটাল স্থানে ফিট করার জন্য বৃত্তাকারণ অত্যন্ত গুরুত্বপূর্ণ—অন্তত প্রাচীন কম্পিউটারের জন্য যাদের স্মৃতিতে প্রচুর সীমাবদ্ধতা ছিল। জাদুঘরের অ্যাবাকাসের কথা ভাবুন কিন্তু কম কারুকার্যপূর্ণ, বেশি গণিতীয়।
রাস্টের নেটিভ পদ্ধতিগুলির বিকল্প হল:
format!
ম্যাক্রো স্ট্রিং ফরম্যাটিংয়ের জন্য যা ডিফল্ট হিসেবে বৃত্তাকার করে।- বিশেষায়িত গণিতীয় কাজের জন্য বাইরের ক্রেটস, যেমন
round
ক্রেট যা আরও সূক্ষ্ম নিয়ন্ত্রণ প্রদান করে।
গোপনে, রাস্টের বৃত্তাকার অপারেশনগুলি IEEE মানগুলির সাথে মিলে যায়—প্রযুক্তির অভিধানে “এটি আপনার গণিত শিক্ষকের মত বৃত্তাকার করে”। প্লাস, বাইনারি প্রতিনিধিত্বের কারণে, কিছু সংখ্যা প্রথাগতভাবে বৃত্তাকার করা যায় না, যেমন 0.1, তাদের বাইনারিতে অসীম প্রতিনিধিত্বের জন্য।
আরও দেখুন
- প্রাইমিটিভ টাইপ মেথডসের উপর রাস্ট ডক: https://doc.rust-lang.org/std/primitive.f64.html
- ফ্লোটিং-পয়েন্ট অ্যারিথমেটিকের জন্য IEEE স্ট্যান্ডার্ড (IEEE 754): https://ieeexplore.ieee.org/document/4610935
- জটিল বৃত্তাকারণের জন্য “round” ক্রেট: https://crates.io/crates/round