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 संख्यात्मक गणनाओं के लिए मानक अंकगणितीय ऑपरेटर देती है:
| ऑपरेटर | विवरण | उदाहरण |
|---|---|---|
+ |
जोड़ |
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)