Swift में संख्याओं की दो मुख्य श्रेणियाँ होती हैं: पूर्णांक और दशमलव संख्याएँ।
0, 1, -1, 42 और -273.0.0, 3.14 और -1.36969e-10.पढ़ने में आसानी के लिए आप संख्यात्मक लिटरल के बीच अंडरस्कोर डाल सकते हैं: 1_000_000 और 1000000 एक जैसे ही होते हैं।
दशमलव संख्याओं के लिटरल दशमलव या घातांक रूप में लिखे जा सकते हैं।
अधिकतर मामलों में पूर्णांकों के लिए Int और दशमलव संख्याओं के लिए Double इस्तेमाल किया जाता है:
let speed: Int = 42 // Explicit Int
let pi: Double = 3.14 // Explicit Double
let giga: Double = 1_000_000_000 // Double with readability underscores
let plancksConstant: Double = 6.62607015e-34 // Double in scientific notation
Swift गणनाओं के लिए मानक अंकगणितीय ऑपरेटर देता है:
| Operator | Description | Example |
|---|---|---|
+ |
जोड़ |
4 + 6 का मान 10 होता है |
- |
घटाव |
15 - 10 का मान 5 होता है |
* |
गुणा |
2 * 3 का मान 6 होता है |
Swift टाइप की दृष्टि से सुरक्षित है और अंकगणितीय क्रियाओं में अलग-अलग संख्या टाइपों को मिलाने की अनुमति नहीं देता।
आप किसी Int और Double को सीधे जोड़ या गुणा नहीं कर सकते; पहले आपको एक टाइप को दूसरे से मिलाने के लिए बदलना होगा।
/ ऑपरेटर भाग करता है।
जब दोनों ऑपरेंड पूर्णांक हों, तो पूर्णांक भाग किसी भी भिन्नात्मक शेष को हटा देता है:
5.0 / 2.0 // 2.5 (Double division)
5 / 2 // 2 (integer division truncates the remainder)
किसी गैर-शून्य दशमलव संख्या को शून्य से भाग देने पर inf या -inf मिलता है।
0.0 को 0.0 से भाग देने पर nan (संख्या नहीं) मिलता है।
इसके विपरीत, किसी पूर्णांक को शून्य से भाग देने पर कंपाइल-टाइम या रनटाइम एरर होती है:
print(5.0 / 0.0) // Prints inf
print(-5.0 / 0.0) // Prints -inf
print(0.0 / 0.0) // Prints nan
// The following line will not compile:
// print(5 / 0) // Error: Division by zero
शेषफल ऑपरेटर (%) दो पूर्णांकों को भाग देने के बाद बचे शेषफल की गणना करता है:
5 % 2 // 1
-5 % 2 // -1
// Dividing by zero produces an error:
// 5 % 0 // Error: Division by zero
Swift में % मॉड्यूलो ऑपरेटर नहीं, बल्कि असली शेषफल ऑपरेटर है।
परिणाम हमेशा पहले ऑपरेंड (भाज्य) का चिह्न लेता है, चाहे दूसरे ऑपरेंड का चिह्न कुछ भी हो:
5 % -2 // 1
-5 % 2 // -1
आप किसी दशमलव संख्या को rounded() मेथड से पूर्णांकित कर सकते हैं।
डिफ़ॉल्ट रूप से rounded() निकटतम पूर्णांक तक पूर्णांकित करता है।
आप पूर्णांकन नियम भी दे सकते हैं, जैसे .up या .down:
let x = 3.14
let y = x.rounded() // 3.0
let w = x.rounded(.down) // 3.0
let z = x.rounded(.up) // 4.0
जब आप किसी संख्यात्मक कॉन्स्टेंट या वेरिएबल को टाइप एनोटेशन के बिना घोषित करते हैं, तो Swift उसका टाइप अनुमान लगा लेता है:
Int होता है।Double होता है।let x = 42 // Inferred as Int
let y = 42.0 // Inferred as Double
let z: Double = 42 // Explicitly typed as Double
अलग-अलग टाइप की वैल्यू के बीच गणना करने के लिए, किसी एक वैल्यू को Double(_:) या Int(_:) जैसे टाइप इनिशियलाइज़र से बदल लीजिए:
let integerCount = 42
let floatingCount = Double(integerCount)
print(floatingCount) // Prints 42.0
let pi = 3.14
let integerPi = Int(pi)
print(integerPi) // Prints 3 (fractional part is truncated)
इस अभ्यास में आप कोड लिखेंगे जो एक फ्रीलांसर को प्रोजेक्ट मैनेजर के साथ बात करने में मदद करेगा। आपको कुछ टूल बनाने हैं, जिनसे दैनिक और मासिक दरें जल्दी से निकाली जा सकें, और चाहें तो दी गई छूट भी लगाई जा सके।
सबसे पहले हम फ्रीलांसर और प्रोजेक्ट मैनेजर के बीच कुछ नियम तय करते हैं:
कभी-कभी फ्रीलांसर अपनी दैनिक दर पर छूट लगाने की पेशकश करते हैं (जैसे अपने सबसे वफ़ादार ग्राहकों के लिए या गैर-लाभकारी ग्राहकों के लिए)।
छूट को प्रतिशत दर्शाने वाली दशमलव संख्याओं के रूप में दर्शाया जाता है, जैसे 25.0 (25%)।
प्रति घंटा दर पैरामीटर के रूप में दी गई हो, तो दैनिक दर निकालने के लिए dailyRateFrom नाम का फंक्शन बनाइए।
अनुबंध के मुताबिक एक दिन में 8 बिल करने योग्य घंटे होते हैं।
dailyRateFrom(hourlyRate: 60)
// Returns 480.0
लौटाई गई दैनिक दर Double होनी चाहिए।
छूट के बाद की मासिक दर निकालने के लिए monthlyRateFrom फंक्शन बनाइए।
यह दो पैरामीटर लेता है: प्रति घंटा दर और प्रतिशत में छूट।
monthlyRateFrom(hourlyRate: 77, withDiscount: 10.5)
// Returns 12129
लौटाई गई मासिक दर को निकटतम पूर्ण संख्या तक ऊपर की ओर पूर्णांकित किया जाना चाहिए (यानी सीलिंग लीजिए)।
workdaysIn फंक्शन बनाइए, जो बजट, प्रति घंटा दर और छूट लेता है, और यह निकालता है कि उस बजट में कितने पूरे दिन का काम आता है।
workdaysIn(budget: 20000, hourlyRate: 80, withDiscount: 11.0)
// Returns 35.0
लौटाई गई दिनों की संख्या को अगली पूर्ण संख्या तक नीचे की ओर पूर्णांकित किया जाना चाहिए (यानी फ्लोर लीजिए)।
Exercism पर साइन अप कीजिए और Swift को 35 कॉन्सेप्ट116 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।