Elixir में संख्याएँ दो तरह की होती हैं - पूर्णांक और दशमलव संख्याएँ।
पूर्णांक पूरी संख्याएँ होती हैं।
integer = 3
# => 3
दशमलव संख्याओं में दशमलव चिह्न के बाद एक या अधिक अंक होते हैं। ये 64-बिट डबल प्रिसिज़न फ्लोटिंग-पॉइंट फॉर्मैट का उपयोग करती हैं।
float = 3.45
# => 3.45
Integer और Float मॉड्यूल में आपको इन टाइपों के साथ काम करने के लिए कुछ उपयोगी फंक्शन मिलते हैं। बुनियादी अंकगणितीय ऑपरेटर Kernel मॉड्यूल में परिभाषित हैं।
एक ही अंकगणितीय एक्सप्रेशन में पूर्णांक और दशमलव संख्याएँ मिलाई जा सकती हैं। किसी एक्सप्रेशन में दशमलव संख्या इस्तेमाल करने पर परिणाम भी दशमलव संख्या ही होता है।
2 * 3
# => 6
2 * 3.0
# => 6.0
लेकिन भाग देने पर परिणाम हमेशा दशमलव संख्या ही होता है, भले ही सिर्फ पूर्णांक इस्तेमाल किए गए हों।
6 / 2
# => 3.0
किसी दशमलव संख्या को पूर्णांक में बदलने के लिए आप trunc/1 की मदद से उसका दशमलव वाला भाग हटा सकते हैं।
इस अभ्यास में आप एक फ्रीलांसर और प्रोजेक्ट मैनेजर के बीच बातचीत में मदद करने के लिए कोड लिखेंगे। आपको कुछ यूटिलिटी बनानी हैं, जिनकी मदद से दैनिक और मासिक दरें जल्दी से निकाली जा सकें और चाहें तो उन पर दी गई छूट भी लगाई जा सके।
सबसे पहले हम फ्रीलांसर और प्रोजेक्ट मैनेजर के बीच कुछ नियम तय करते हैं:
कभी-कभी फ्रीलांसर अपनी दैनिक दर पर छूट देने की पेशकश करता है (जैसे अपने सबसे निष्ठावान ग्राहकों के लिए या उन ग्राहकों के लिए जिनका उद्देश्य लाभ कमाना नहीं होता)।
छूट को प्रतिशत दर्शाने वाली दशमलव संख्याओं के रूप में दिखाया जाता है, जैसे 25.0 (25%)।
प्रति घंटा दर को पैरामीटर के रूप में लेकर दैनिक दर निकालने वाला daily_rate नाम का फंक्शन बनाइए। यह करार तय करता है कि एक दिन में 8 ऐसे घंटे होते हैं जिनका बिल बनाया जा सकता है।
FreelancerRates.daily_rate(60)
# => 480.0
लौटाई गई दैनिक दर एक दशमलव संख्या होनी चाहिए।
छूट के बाद की कीमत निकालने के लिए apply_discount फंक्शन बनाइए।
FreelancerRates.apply_discount(150, 10)
# => 135.0
लौटाई गई वैल्यू हमेशा एक दशमलव संख्या होनी चाहिए और उसे किसी भी तरह से पूर्णांकित नहीं किया जाना चाहिए।
छूट लगाने के बाद की मासिक दर निकालने के लिए monthly_rate फंक्शन बनाइए। यह दो पैरामीटर लेता है: प्रति घंटा दर और प्रतिशत में छूट।
FreelancerRates.monthly_rate(77, 10.5)
# => 12130
लौटाई गई मासिक दर को ऊपर की ओर पूर्णांकित करके निकटतम पूर्णांक तक लाना चाहिए।
ऐसा days_in_budget फंक्शन बनाइए जो बजट, प्रति घंटा दर और छूट लेता है और बताता है कि उससे कितने पूरे दिनों का काम पूरा होगा।
FreelancerRates.days_in_budget(20000, 80, 11.0)
# => 35.1
लौटाई गई दिनों की संख्या को नीचे की ओर पूर्णांकित करके एक दशमलव स्थान तक लाना चाहिए।
Exercism पर साइन अप कीजिए और Elixir को 58 कॉन्सेप्ट168 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।