FirebirdSQL logo
 Структура языка SQLОбщие элементы языка 

Приблизительные числовые типы

Приблизительные числовые типы плавающей запятой, поддерживаемые Firebird представлены типами 32-битной одинарнойточностью и 64-битной двойной точности. Эти типы доступны со следующими именами стандартных типов SQL:

  • REAL — 32-битный одинарной точности (синоним типа FLOAT);

  • FLOAT — 32-битный одинарной точности;

  • DOUBLE PRECISION — 64-битный двойной точности;

  • FLOAT(p), где p — точность в двоичных числах

    • 1 <= p <= 32 — 32-битное одинарной точности (синоним типа FLOAT)

    • 33 <= p <= 53 — 64-битное двойной точности (синоним типа DOUBLE PRECISION)

Кроме того, в Firebird имеются нестандартные имена типов:

  • LONG FLOAT — 64-двойной точности (синоним типа DOUBLE PRECISION);

  • LONG FLOAT(p), где p — точность в двоичных числах. 1 <= p <= 53 — 64-битное двойной точности (синоним типа DOUBLE PRECISION)

Точность этого типов FLOAT и DOUBLE PRECISION является динамической, что соответствует физическому формату хранения,который составляет 4 байта для типа FLOAT и 8 байт для типа DOUBLE PRECISION.

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

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

При использовании таких типов данных в выражениях рекомендуется крайне внимательно и серьёзно подойти к вопросу округления результатов расчётов.

FLOAT

FLOAT — тип данных для хранения чисел с плавающей точкой.

Синтаксис
FLOAT [(bin_prec)]
Table 1. Параметры типа FLOAT
Parameter Description

bin_prec

Точность в двоичных цифрах, по умолчанию рано 24

1 - 24: 32-битное одинарной точности (FLOAT без указания точности)25 - 53: 64-битное двойной точности (синоним типа DOUBLE PRECISION)

Тип данных FLOAT по умолчанию представляет собой 32-битный тип с плавающей запятой одинарной точностис приблизительной точностью 7 десятичных знаков после десятичной точки (24 двоичных знака).Числа типа FLOAT находятся в диапазоне от 1.175 x 10-38 до 3.402 x 1038.