float 和 real (Transact-SQL)
用于表示浮点数值数据的大致数值数据类型。 浮点数据为近似值;因此,并非数据类型范围内的所有值都能精确地表示。 real 的 ISO 同义词为 float(24)。
适用范围:SQL Server(SQL Server 2008 至当前版本),Windows Azure SQL Database(初始版本至当前版本)。 |
语法
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)] 数据类型从 1 到 53 之间的所有 n 值均符合 ISO 标准。 double precision 的同义词为 float(53)。
注释
数据类型 |
范围 |
存储 |
---|---|---|
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)。
使用科学记数法将 float 值转换为 decimal 或 numeric 被限制为仅限 17 位精度的值。 精度高于 17 的任何值都将舍入为零。
请参阅
参考
DECLARE @local\_variable (Transact-SQL)
SET @local\_variable (Transact-SQL)