Иллюстрированный самоучитель по Kylix
ac3ae3b5

Вещественные типы данных



Таблица 2.2. Вещественные типы данных

Тип данных

Диапазон значений

Точность (знаков)

Количество байт



Real48

2,9x10^- 39-1,7х10^38

11-12

6

Single

1,5х10^- 45-3,4х10^38

7-8

4

Double

5,0x10^- 324-1,7х10^308

15-16

8

Extended

3,6х10^- 4951-1,1х10^4932

19-20

10

Comp

-2^63+1- 2^63-1

19-20

8

Currency

-922 337 203 685 477,5808 - 922 337 203 685 477,5807

19-20

8

Real

5,0x10^- 324 -1,7х10^308

15-16

8

Примечание

Шестибайтовый тип Real 48 применялся в ранних версиях языка Object Pascal как Real. Если вы перекомпилируете код, который использовал ранний шестибайтовый тип Real, вы можете для удобства изменить его на Real 48. Кроме того, вы можете применить директиву компилятора {$REALCOMPATIBILITY ON} для автоматического перевода типа Real в шестибайтовый.

О вышеперечисленных типах можно еще сказать следующее:

  • тип Real 48 добавлен в язык для обратной совместимости со старыми версиями программ. Так как такой формат данных не является "родным" для процессоров семейства Intel, использование типа Real 48 замедляет скорость выполнения программы;
  • тип Extended предлагает большую точность, чем другие вещественные типы, но является наименее компактным. Будьте осторожны при использовании данного типа, если вы хотите создавать программы сразу для нескольких платформ;
  • тип Comp является "родным" для семейства процессоров Intel и представляет собой 64-разрядное целое число. Данный тип не относится к целым типам, т. к. не является порядковым и при присваивании переменной данного типа вещественного числа происходит его округление до ближайшего целого. Кроме того, данный тип не поддерживает некоторые операции, допустимые над целыми порядковыми числами (Inc(x), Dec(x) и др.). Этот тип используется лишь для обратной совместимости. Для лучшего быстродействия воспользуйтесь типом Int64;
  • тип Currency является типом с фиксированной запятой, которая применяется для уменьшения ошибок при вычислениях, связанных с денежными суммами. Данный тип представляет собой 64-разрядное целое число с четырьмя знаками после запятой.

Над вещественными числами допускается осуществлять следующие операции:

  • Round (х) — округление числа х;
  • Trunc (х) — отбрасывание дробной части числа х.

Логические типы данных

Для хранения логических значений Object Pascal использует тип данных Boolean. Переменная логического типа занимает один байт памяти и может принимать два значения: 1 или 0. Значение 1 соответствует значению True (истина). Значение 0 соответствует значению False (ложь). Из-за того, что данный тип не совместим с подобными логическими типами, применяемыми в других языках программирования, Object Pascal имеет три дополнительных логических типа:

  • ByteBool — порядковое численное значение от 0 до 255, где 0 соответствует значению False, а все остальные числа — значению True. Данный тип занимает 1 байт памяти;
  • WordBool — порядковое числовое значение от 0 до 65 535, где 0 соответствует значению False, а все остальные числа — значению True. Данный тип занимает 2 байта памяти;
  • LongBool — порядковое числовое значение от 0 до 4 294 967 295, где 0 соответствует значению False, а все остальные числа — значению True. Данный тип занимает 4 байта памяти.

Операции над этими типами могут привести к разным значениям. В табл. 2.3 вы найдете отличия в результатах операций над различными логическими типами.



Содержание раздела