float 和 real (Transact-SQL)

適用於:Microsoft Fabric 中 Microsoft Fabric倉儲中的 SQL ServerAzure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse AnalyticsPlatform System (PDW)SQL 分析端點

用來搭配浮點數值資料使用的近似數值資料類型。 浮點數資料是近似的;因此,並非資料類型範圍內的所有值都能夠精確地表示。 real 的 ISO 同義字是 float(24)

Transact-SQL 語法慣例

語法

float [ (n) ] 其中 n 是用來儲存科學記號標記法 float 數尾數的位元數目;因此,其規定有效位數和儲存體大小。 如果指定 n,則其值必須介於 153 之間。 n 的預設值為 53

n Precision 儲存體大小
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)

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔

備註

資料類型 範圍 儲存體
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 值轉換成任何整數類型時都會截斷。

當您想要從 floatreal 轉換成字元資料時,使用 STR 字串函式比 CAST( ) 來得有用。 這是因為 STR 可以對格式有較多的控制。 如需詳細資訊,請參閱 STR (Transact-SQL)Functions (Transact-SQL)

在 SQL Server 2016 (13.x) 之前,float 值轉換至 decimalnumeric,就會限制為只有 17 個有效位數的值。 任何小於 5E-18 (當設定使用 5E-18 科學記號標記法或 0.000000000000000005 十進位標記法時) 的 float 值都會捨去為 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)