このページは機械翻訳したものです。
FLOAT および DOUBLE 型は概数値データ値を表します。 MySQL は、単精度値には 4 バイトを、倍精度値には 8 バイトを使用します。
FLOAT の場合、SQL 標準では、カッコで囲まれたキーワード FLOAT の後のビット単位の精度 (指数の範囲ではない) をオプションで指定できます。つまり、FLOAT( です。 MySQL では、このオプションの精度指定もサポートされていますが、p)FLOAT( の精度値は記憶域サイズの決定にのみ使用されます。 0 から 23 の精度は、4 バイト単精度の p)FLOAT カラムになります。 24 から 53 の精度は、8 バイト倍精度の DOUBLE カラムになります。
MySQL は、FLOAT( または M,D)REAL( または M,D)DOUBLE PRECISION( の非標準の構文を許可します。 ここで、M,D)( は、値は合計で M、D)M 桁まで格納でき、そのうちの D 桁は小数点以下です。 たとえば、FLOAT(7,4) として定義されたカラムは、-999.9999 として表示されます。 MySQL は、値を格納するときに丸めを行うので、FLOAT(7,4) カラムに 999.00009 を挿入すると、近似の結果は 999.0001 になります。
MySQL 8.0.17 では、非標準の FLOAT( および M,D)DOUBLE( 構文は非推奨であり、将来のバージョンの MySQL ではサポートされなくなる予定です。
M,D)
浮動小数点値は概数値であり、真数値としては格納されないので、比較で値を真数値として扱おうとすると、問題が発生することがあります。 これらはまた、プラットフォームまたは実装の依存関係にも従います。 詳細は、セクションB.3.4.8「浮動小数点値に関する問題」を参照してください。
移植性を最大にするために、概数値データ値のストレージを必要とするコードでは、精度または桁数が指定されていない FLOAT または DOUBLE PRECISION を使用する必要があります。