0Pricing
Swift Academy · Урок

Явные преобразования чисел

Осознанно преобразуйте числовые типы, чтобы избежать ошибок.

«Явные преобразования чисел» — бесплатный урок Swift Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.

Swift требует явного преобразования

Swift не преобразует числовые типы автоматически. Чтобы объединить Int и Double, необходимо явно преобразовать один из них.

let count = 3
let price = 2.5
let total = Double(count) * price
print(total)

Почему нет неявного преобразования

Неявные преобразования могут незаметно привести к потере данных или изменению смысла. Swift заставляет явно указывать намерение, предотвращая трудноуловимые ошибки.

let whole = 7
let fraction = 0.5
let result = Double(whole) + fraction
print(result)

Преобразование Int в Double

Оберните целое число в Double(...), чтобы получить его представление с плавающей точкой. Это необходимо перед выполнением деления с вещественным результатом.

let a = 7
let b = 2
let ratio = Double(a) / Double(b)
print(ratio)

Преобразование Double в Int

Применение Int(...) к Double отбрасывает дробную часть, округляя к нулю (это не округление до ближайшего целого).

let value = 3.99
print(Int(value))
print(Int(-3.99))

Округление перед преобразованием

Если вместо усечения требуется округление, сначала вызовите .rounded(), а затем преобразуйте значение в Int.

let value = 3.6
let rounded = Int(value.rounded())
print(rounded)

Преобразование между целочисленными типами

Даже для преобразования одного целочисленного типа в другой требуется явное указание, например Int(small) или Int8(big), поскольку диапазоны значений различаются.

let small: Int8 = 100
let big: Int = Int(small)
print(big + 1000)

Преобразование с переполнением

Преобразование значения, которое не помещается в целевой тип, приводит к аварийному завершению во время выполнения. Если вы не уверены, сначала проверьте диапазон.

let n = 200
if n <= Int(Int8.max) {
    print("fits")
} else {
    print("would overflow Int8")
}

Инициализаторы числовых типов, допускающие сбой

В некоторых преобразованиях используются инициализаторы, допускающие сбой, например Int8(exactly:). Они возвращают опциональное значение и дают nil, если значение нельзя представить точно.

let ok = Int8(exactly: 100)
let bad = Int8(exactly: 300)
print(ok as Any)
print(bad as Any)

Преобразование строки в число

Преобразование String в число также выполняется явно и может завершиться неудачей: в случае некорректного числового значения текста возвращается опциональное значение.

let text = "42"
if let n = Int(text) {
    print("Parsed:", n)
}
print(Int("hello") as Any)

Сочетание числовых операций с разными типами

Типичный подход таков: преобразуйте все операнды к общему типу, выполните вычисления, а затем при необходимости преобразуйте итоговый результат обратно.

let items = 5
let pricePerItem = 1.99
let total = Double(items) * pricePerItem
let rounded = (total * 100).rounded() / 100
print("Total:", rounded)

Преобразования делают код безопаснее

Явные преобразования показывают, где изменяется точность, поэтому числовой код проще проверять и понимать.

let measured = 9.81
let asInt = Int(measured)
let backToDouble = Double(asInt)
print(measured, asInt, backToDouble)

Быстрая проверка

Предскажите результат преобразования Double в Int.

Итоги: явные числовые преобразования

Вы узнали, что Swift никогда не преобразует числовые типы неявно, что Int(...) усекает значения Double, а Double(...) расширяет значения Int, и что инициализаторы, допускающие сбой, например Int8(exactly:) и Int("text"), возвращают опциональные значения, если преобразование невозможно.

let pieces = 7
let share = Double(pieces) / 2.0
print("Share:", share)
print("Truncated:", Int(share))

Часто задаваемые вопросы

Урок «Явные преобразования чисел» бесплатный?

Да — полный текст урока «Явные преобразования чисел» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.

Чему я научусь в уроке «Явные преобразования чисел»?

Осознанно преобразуйте числовые типы, чтобы избежать ошибок. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Swift Academy?

Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Явные преобразования чисел»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Swift Academy?

Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Целочисленные типы и их диапазоны
  2. Числа с плавающей точкой: Double и Float
  3. Явные преобразования чисел
  4. Числовые литералы и символы подчёркивания
← Назад к Swift Academy