Вещественные типы

b

Обзор вещественных типов в Delphi

В экосистеме Delphi работа с числами с плавающей точкой реализована через несколько специализированных типов, каждый из которых имеет строго определённые характеристики. В отличие от целочисленных или строковых типов, вещественные переменные требуют понимания компромиссов между точностью, диапазоном и производительностью. Ниже приведены технические спецификации, особенности изготовления (компиляции) и критерии качества выбора того или иного типа.

Основные типы: Double, Single, Extended

Специализированные форматы: Currency и Decimal

Отличия от альтернатив (C#, Python, C++)

  1. Extended (80 бит) — уникальная особенность Delphi (наследие архитектуры x87). В C++ доступен только через нестандартные расширения компилятора; Java и C# не поддерживают его вовсе. Для проектов на Delphi, мигрирующих на .NET, потеря Extended может вызвать расхождения в расчётах.
  2. Currency — отсутствует аналог в стандартной библиотеке Python; в C# есть decimal, но с большим диапазоном (28 знаков) и другой производительностью.
  3. Decimal в Delphi — в отличие от decimal в C#, не является встроенным типом CLR, а реализован через класс или запись. Это накладывает накладные расходы при создании экземпляров, но даёт полный контроль над округлением (банковское округление).

Качество и стандарты производства (компиляции)

Компилятор Delphi (версии 12+ и 2026) для вещественных типов применяет следующие гарантии: