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

Применимо к: даSQL Server (все поддерживаемые версии) ДаБаза данных SQL Azure ДаУправляемый экземпляр SQL Azure даAzure Synapse Analytics даПараллельное хранилище данных

Типы приблизительных числовых данных, используемые для числовых данных с плавающей запятой. Данные с плавающей запятой являются приблизительными, поэтому не все значения из диапазона могут быть отображены точно. Синонимом по стандарту 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 и более ранних версий, см. в статье Документация по предыдущим версиям.

Remarks

Тип данных Диапазон Память
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); точность преобразования значений float в decimal или numeric была ограничена 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)