float 型と real 型 (Transact-SQL)
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric のSQL 分析エンドポイント
Microsoft Fabric のウェアハウス
浮動小数点数値データで使用する概数型です。 浮動小数点データは概数であるため、データ型の範囲に含まれるすべての値を正確に表せるわけではありません。 real の ISO シノニムは、 float (24) です。
構文
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 の場合、n は 24 として処理されます。 25<=n<=53 の場合、n は 53 として処理されます。
SQL Server float[(n)] データ型は、n (1 から 53) のすべての値で ISO 標準に準拠しています。 double precision のシノニムは float (53) です。
Note
SQL Server 2014 (12.x) 以前のバージョンの 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 の動作は、近似数値データ型の IEEE 754 仕様に従います。 Microsoft Visual C (MSVC) コンパイラでの IEEE 754 標準の使用方法については、「 IEEE 浮動小数点表現」を参照してください。
概数データ型では、多くの数値に対して指定された正確な値は格納されません。値の近似値を格納します。 一部のアプリケーションでは、指定された値と格納されている近似値の小さな差は関係ありません。 ただし、他のユーザーにとっては、その違いが重要です。 浮動小数点型と実際のデータ型の概ね性質上、正確な数値の動作が必要な場合は、これらのデータ型を使用しないでください。 正確な数値を必要とする例としては、財務データやビジネス データ、丸め処理を伴う操作、等値チェックがあります。 このような場合は、整数、10 進数、数値、money、または smallmoney のデータ型を使用します。
WHERE 句の検索条件 、特に = 演算子と <> 演算子では、float 列または実列を使用しないでください。 float 列と real 列は、比較を > または < に制限することをお勧めします。
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) の時点で制限がなくなりました。