फ्लोटिंग-पॉइंट संख्या ऐसी संख्या होती है जिसमें दशमलव विभाजक के बाद शून्य या उससे अधिक अंक होते हैं। उदाहरण हैं -2.4, 0.1, 3.14, 16.984025 और 1024.0.
अलग-अलग फ्लोटिंग-पॉइंट टाइप दशमलव विभाजक के बाद अलग-अलग संख्या में अंक संग्रहीत कर सकते हैं। इसे ही उसकी परिशुद्धता कहा जाता है। इसका मतलब है कि किसी single में PI संग्रहीत करने पर सिर्फ पहले 6 से 9 अंक ही संग्रहीत होंगे (और अंतिम अंक को गोल कर दिया जाएगा)।
Clojure में फ्लोटिंग-पॉइंट संख्याएँ Doubles के रूप में पढ़ी जाती हैं; M प्रत्यय के साथ इन्हें BigDecimals के रूप में पढ़ा जाता है।
Double: 8 बाइट (लगभग 15-17 अंकों की परिशुद्धता)। यह सबसे आम टाइप है। इसे 2.45 के रूप में लिखा जाता है।BigDecimal: मनमानी परिशुद्धता वाली अनस्केल्ड पूर्णांक वैल्यू और एक 32-बिट पूर्णांक स्केल। इसे 2.45M के रूप में लिखा जाता है।इस अभ्यास में आप बचत खातों के साथ काम करेंगे। हर साल आपके बचत खाते का बैलेंस उसकी ब्याज दर के आधार पर अपडेट किया जाता है। आपका बैंक आपको जो ब्याज दर देता है, वह आपके खाते में मौजूद रकम (उसके बैलेंस) पर निर्भर करती है:
1000 डॉलर से कम बैलेंस पर 0.5%।1000 डॉलर या उससे अधिक और 5000 डॉलर से कम बैलेंस पर 1.621%।5000 डॉलर या उससे अधिक बैलेंस पर 2.475%।हर साल, आपके बचत खाते का बैलेंस अपडेट होने से पहले, सरकार आपको कर-मुक्त रूप से अपने पैसे का एक प्रतिशत दान संस्थाओं को देने की अनुमति देती है। चूँकि आप एक अच्छे इंसान हैं, इसलिए अगर साल के अंत में आपका बैलेंस धनात्मक रहता है, तो आप इस रकम का दोगुना दान संस्थाओं को देते हैं। यह दोगुनी रकम निकटतम पूर्ण डॉलर तक नीचे की ओर पूर्णांकित की जाती है।
आपके सामने तीन कार्य हैं, और तीनों आपके बैलेंस और उसकी ब्याज दर से जुड़े हैं।
interest-rate फंक्शन बनाइए जो दिए गए बैलेंस के आधार पर ब्याज दर की गणना करे:
(interest-rate 200.75M)
;;=> 0.5
ध्यान दें कि यह फंक्शन एक Double वैल्यू लौटाता है।
annual-balance-update फंक्शन बनाइए जो ब्याज दर को ध्यान में रखते हुए सालाना बैलेंस अपडेट की गणना करे:
(annual-balance-update 200.75M)
;;=> 201.75375M
ध्यान दें कि यह फंक्शन एक BigDecimal वैल्यू लौटाता है।
amount-to-donate फंक्शन बनाइए जो बैलेंस और सरकार द्वारा अनुमत कर-मुक्त प्रतिशत के आधार पर गणना करे कि दान संस्थाओं को कितना पैसा दिया जाए:
(def balance 550.5M)
(def tax-free-percentage 2.5)
(amount-to-donate balance tax-free-percentage)
;;=> 27
ध्यान दें कि यह फंक्शन एक int वैल्यू लौटाता है।
Exercism पर साइन अप कीजिए और Clojure को 12 कॉन्सेप्ट105 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।