float 和 real (Transact-SQL)

用于表示浮点数值数据的大致数值数据类型。 浮点数据为近似值;因此,并非数据类型范围内的所有值都能精确地表示。

注意注意

real 的 ISO 同义词为 float(24)。

数据类型

范围

存储

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 字节

主题链接图标 Transact-SQL 语法约定

语法

  • float [ (n) ]
    其中 n 为用于存储 float 数值尾数的位数(以科学记数法表示),因此可以确定精度和存储大小。 如果指定了 n,则它必须是介于 153 之间的某个值。 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)] 数据类型从 153 之间的所有 n 值均符合 ISO 标准。 double precision 的同义词为 float(53)。

转换 float 和 real 数据

如果将 float 值转换为任一整数类型,这些值将被截断。

若要将 float 或 real 转换为字符数据,使用 STR 字符串函数通常比使用 CAST( ) 更有用。 这是因为 STR 能够对格式进行更严格的控制。 有关详细信息,请参阅 STR (Transact-SQL)内置函数 (Transact-SQL)

使用科学记数法将 float 值转换为 decimal 或 numeric 被限制为仅限 17 位精度的值。 精度高于 17 的任何值都将舍入为零。

请参阅

参考

ALTER TABLE (Transact-SQL)

CAST 和 CONVERT (Transact-SQL)

CREATE TABLE (Transact-SQL)

数据类型 (Transact-SQL)

DECLARE @local\_variable (Transact-SQL)

SET @local\_variable (Transact-SQL)

概念

数据类型转换(数据库引擎)