Чи

Числа у Swift

1 вправа

Про концепцію Числа

Числа

Swift надає дві основні категорії чисел: цілі числа та числа з плаваючою комою.

У числові літерали можна вставляти підкреслення, щоб покращити читабельність: 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
Caution

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 (Not a Number). Натомість ділення цілого числа на нуль спричиняє помилку під час компіляції або виконання:

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
Note

У 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)
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці

Вивчити концепцію Числа