संख्याओं को पूर्णांक बनाना

Haskell:
संख्याओं को पूर्णांक बनाना

कैसे:

हास्केल round, ceiling, floor, और truncate फंक्शन्स का उपयोग Prelude से गोलीकरण ऑपरेशनों के लिए करता है।

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 में आधे रास्ते के मामलों को हास्केल कैसे संभालता है, इसके कारण अप्रत्याशित परिणामों के लिए सावधान रहें (यह निकटतम सम पूर्णांक को गोल करता है)।

देखें भी