Типы данных float и real (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Управляемый экземпляр SQL Azure Конечная точка аналитики аналитики Synapse Analytics Analytics (PDW)SQL Analyticsв Microsoft FabricХранилище в Microsoft Fabric

Типы приблизительных числовых данных, используемые для числовых данных с плавающей запятой. Данные с плавающей запятой являются приблизительными, поэтому не все значения из диапазона могут быть отображены точно. Синонимом по стандарту ISO для типа real является float(24).

Соглашения о синтаксисе Transact-SQL

Синтаксис

float [ (n) ] Где n — это количество битов, используемых для хранения мантиссы числа в формате float при экспоненциальном представлении. Определяет точность данных и размер для хранения. Если указан параметр n, это должно быть значение в диапазоне от 1 до 53. Значение n по умолчанию — 53.

Значение n Точность Объем памяти
1-24 7 цифр 4 байта
25-53 15 знаков 8 байт

Примечание.

SQL Server обрабатывает n как одно из двух возможных значений. Если 1<=n<=24, n принимает значение 24. Если 25<=n<=53, n принимает значение 53.

Тип данных SQL Server float[(n)] соответствует стандарту ISO для всех значений n от 1 до 53. Синонимом типа double precision является тип float(53).

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Замечания

Тип данных Диапазон Хранилище
float - 1,79E+308 — -2,23E-308, 0 и 2,23E-308 — 1,79E+308 Зависит от значения n
real - 3,40E + 38 — -1,18E - 38, 0 и 1,18E - 38 — 3,40E + 38 4 байта

Преобразование данных типа float и real

При преобразовании в любой целочисленный тип данных значения типа float усекаются.

Если тип данных float или real нужно преобразовать в символьный тип, то, как правило, строковую функцию STR использовать удобнее, чем CAST( ). Это объясняется большими возможностями функции STR в отношении форматирования. Дополнительные сведения см. в статьях STR (Transact-SQL) и Функции (Transact-SQL).

До SQL Server 2016 (13.x) преобразование значений с плавающей запятой в десятичное или числовое ограничено только значениями точности 17 цифр. Любое значение типа float менее 5E-18 (в экспоненциальном представлении 5E-18 или десятичном представлении 0.000000000000000005) округляется до 0. Это больше не ограничение по состоянию на SQL Server 2016 (13.x).

См. также

Инструкция ALTER TABLE (Transact-SQL)
CAST и CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)
Преобразование типов данных (ядро СУБД)
Типы данных (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
SET @local_variable (Transact-SQL)