float 型と real 型 (Transact-SQL)

適用対象:yesSQL Server (サポートされているすべてのバージョン) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

浮動小数点数値データで使用する概数型です。 浮動小数点データは概数であるため、データ型の範囲に含まれるすべての値を正確に表せるわけではありません。 real の ISO シノニムは、 float (24) です。

Topic link iconTransact-SQL 構文表記規則

構文

float [ (n) ]。n は、科学的表記法で float 数の仮数部を格納するために使用されるビット数であるため、精度と格納サイズを指示します。 n を指定する場合、1 から 53 までの値にする必要があります。 n の既定値は 53 です。

n Precision ストレージ サイズ
1 ~ 24 7 桁 4 バイト
25-53 15 桁 8 バイト

Note

SQL Server では、n は次の 2 つの値のいずれかの値として扱われます。 1<=n<=24 の場合、n24 として処理されます。 25<=n<=53 の場合、n53 として処理されます。

SQL Server float[(n)] データ型は、n (1 から 53) のすべての値で ISO 標準に準拠しています。 double precision のシノニムは float (53) です。

Note

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

解説

データ型 Range ストレージ
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 桁までの値に制限されます。 5E-18 未満の float 値はすべて (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)