Приведение и преобразование
 
Приведение числовых типов в выражения.

Когда два различных типа данных используются в бинарной операции, как + (сложение) или = (присваивание), меньший тип данных автоматически переводится в более длинный тип данных, независимо от порядка, в котором аргументы даны.

Действия могут быть следующие:
  • когда два аргумента, такие как byte, ubyte, short, ushort, или integer: меньший аргумент приводится к более большему аргументу.
  • когда один аргумент имеет тип longint или ulongint, а второй аргумент имеет тип integer , меньший аргумент приводится к более большему аргументу.
  • когда один из аргументов single или double, оба аргумента преобразуются в double

Все unsigned integer типы обрабатываются как signed integer типы при приведениях, с расширением знака.

Преобразование числовых типов данных

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

Integer в Integer, любые комбинации со знаковыми или беззнаковыми
  • Любой тип целого числа к меньшему типу целого числа: сохраняются наименее значимые биты
  • Любое целое число типа к большему типу целого числа: знак расширяется , заполняя старшие биты

Integer в Single или Double
  • Возможная потеря точности

Double в Single
  • Возможная потеря точности
  • Если значение Double превышает диапазон Single, то результат +/- INF

Double или Single в Integer
  • Возможная потеря точности
  • Если значение числа с плавающей точкой превышает диапазон целевой типа, то результат будет неопределенным. Ошибка во время выполнения не фиксируется.

См. также