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)