Haskell:
সংখ্যা নির্ণয়

কিভাবে:

হাস্কেল Prelude-এ রাউন্ডিং অপারেশনের জন্য round, ceiling, floor, এবং truncate ফাংশন ব্যবহার করে।

import Prelude

main :: IO ()
main = do
  let num = 3.567
  print $ round num    -- 4
  print $ ceiling num  -- 4
  print $ floor num    -- 3
  print $ truncate num -- 3
  
  -- নির্দিষ্ট দশমিক স্থানে রাউন্ডিং করা Prelude-এ নেই।
  -- এখানে একটি কাস্টম ফাংশন:
  let roundTo n f = (fromInteger $ round $ f * (10^n)) / (10.0^^n)
  print $ roundTo 1 num -- 3.6

গভীর অনুসন্ধান

ঐতিহাসিকভাবে, সংখ্যাতাত্ত্বিক বিশ্লেষণ এবং কম্পিউটার বিজ্ঞানে রাউন্ডিং গুরুত্বপূর্ণ কারণ এটি গণনায় ত্রুটি সম্ভাবনা কমাতে গুরুত্বপূর্ণ, বিশেষ করে IEEE 754 এর সাথে ভাসমান-বিন্দু উপস্থাপনা মানকীকৃত হওয়ার আগে।

কোনটিকে রাউন্ড করা হবে? round আপনাকে নিকটতম পূর্ণাঙ্গে নিয়ে যায়—উপরে বা নীচে। ceiling এবং floor সবসময় যথাক্রমে নিকটতম পূর্ণাঙ্গে উপরে বা নীচে রাউন্ড করে, অন্যদিকে truncate কেবল দশমিক বিন্দুগুলি ফেলে দেয়।

এই ফাংশনগুলির বিকল্প হিসেবে কাস্টম লজিক, যেমন আমাদের roundTo, অথবা আরও জটিল দাবী পূরণের জন্য লাইব্রেরি (যেমন Data.Fixed) টেনে আনতে পারেন।

round-এ হাফ-ওয়ে কেসগুলি হাস্কেল কীভাবে হ্যান্ডেল করে তার জন্য অপ্রত্যাশিত ফলাফলের জন্য সাবধান থাকুন (এটি নিকটতম সম সংখ্যায় রাউন্ড করে)।

আরও দেখুন