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 位元組 |
語法
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 與 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)