Delphi 3 и создание приложений баз данных

Фиксированно-десятичные значения


Типы DECIMAL и NUMERIC задают значения с плавающей запятой и определяют в них фиксированное число знаков после запятой. Формат определения этих типов

<тип_данных> ={DECIMAL | NUMERIC} [(точность [, масштаб])] [<размерность массива >]

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

ВНИМАНИЕ!

Специальных столбцов типа DECIMAL и NUMERIC физически не существует; вместо этого, столбцы, описанные типами DECIMAL и NUMERIC, хранятся как INTEGER или DOUBLE PRECISION.

При этом действует правило: если точность (число знаков в числе) меньше 10, то реальный тип столбца INTEGER; если точность больше или равно 10, реальный тип столбца DOUBLE PRECISION. Например:

Объявление

Реальный тип столбца

DECIMAL(5,2)


INTEGER

DECIMAL(12,2)

DOUBLE PRECISION

DECIMAL(12,0)

DOUBLE PRECISION

Известно, что в столбцах типа INTEGER дробных значений хранить нельзя. Поэтому, независимо от того, указано число знаков после десятичной точки или нет, объявление DECIMAL и NUMERIC с общим числом разрядов, меньшим 10, приведет к тому, что фактически в столбце можно будет хранить только целочисленные значения.

Пример.

Определим в ТБД 4 столбца с типами DECIMAL(5,2), DECI-MAL(12,2), DECIMAL(5,0), DECIMAL(12,0) и присвоим им всем одно и то же значение 123.4567. Результат:

DECIMAL(5,2)

DECIMAL (12,2)

DECIMAL(5,0)

DECIMAL(12,0)

123

123.4567

123

123.4567

Как можно заметить, действительно существенным в объявлении типов DECIMAL и NUMERIC является общее число разрядов в числе (точность);

число знаков после десятичной точки (масштаб) существенного значения не имеет.



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