Почему в Swift литерал с плавающей точкой по умолчанию имеет тип Double, а не Float?

«Почему в Swift литерал с плавающей точкой по умолчанию имеет тип Double, а не Float?» — вопрос из категории Swift Core, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Тип Double (64-битный) выбран по умолчанию для литералов с плавающей точкой, потому что он обеспечивает более высокую точность и является стандартом для большинства системных API Apple.

Ключевые причины:

  • Точность: Double имеет около 15-17 десятичных знаков точности, Float — только 6-9. Это минимизирует накопление ошибок округления в вычислениях.
  • Производительность: На современных 64-битных процессорах операции с Double часто выполняются с той же скоростью, что и с Float.
  • Совместимость: Фреймворки (Core Graphics, Core Animation, Foundation) используют Double (например, CGFloat на 64-битных платформах — это Double).

Пример:

let implicitNumber = 3.14159 // Тип Double
let explicitFloat: Float = 3.14159 // Требует явного указания типа

Когда использовать Float? В основном для экономии памяти при работе с большими массивами данных (например, в графике или машинном обучении), где точность Double избыточна.