Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  浮動小数点型 (概数値) - FLOAT、DOUBLE

11.2.3 浮動小数点型 (概数値) - FLOAT、DOUBLE

FLOAT および DOUBLE 型は概数値データ値を表します。MySQL は、単精度値には 4 バイトを、倍精度値には 8 バイトを使用します。

FLOAT については、SQL 標準では、オプションで、キーワード FLOAT に続く括弧内のビットで (指数の範囲ではなく) 精度を指定できます。MySQL はまた、このオプションの精度指定もサポートしますが、その精度値はストレージサイズを決定するためだけに使用されます。0 から 23 の精度は、4 バイト単精度の FLOAT カラムになります。24 から 53 の精度は、8 バイト倍精度の DOUBLE カラムになります。

MySQL は、FLOAT(M,D) または REAL(M,D) または DOUBLE PRECISION(M,D) の非標準の構文を許可します。ここで、(MD) は、値は合計で M 桁まで格納でき、そのうちの D 桁は小数点以下です。たとえば、FLOAT(7,4) として定義されたカラムは、表示されたときには -999.9999 のようになります。MySQL は、値を格納するときに丸めを行うので、FLOAT(7,4) カラムに 999.00009 を挿入すると、近似の結果は 999.0001 になります。

浮動小数点値は概数値であり、真数値としては格納されないので、比較で値を真数値として扱おうとすると、問題が発生することがあります。これらはまた、プラットフォームまたは実装の依存関係にも従います。詳細は、セクションB.5.5.8「浮動小数点値に関する問題」を参照してください。

移植性を最大にするために、概数値データ値のストレージを必要とするコードでは、精度または桁数が指定されていない FLOAT または DOUBLE PRECISION を使用する必要があります。


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
  Posted by Kevin Benton on July 10, 2012
So - what this doesn't cover currently is how precise FLOAT and DOUBLE values are by default. If no (m,n) value is specified, what is the default m,n? Personally, I prefer to use DECIMAL(m,n) more because it isn't an estimate especially when dealing with financial information and not theory.

  Posted by Ariell David on December 21, 2012
@Kevin
DOUBLE[(M,D)] [ZEROFILL] holds double-precision numeric values, pretty similar to FLOAT double-precision, except for its allowable range, which is -1.7976931348623157E+308 to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to 1.7976931348623157E+308.

FLOAT[(M[,D])] [ZEROFILL] stores floating point numbers in the range of -3.402823466E+38 to -1.175494351E-38 and 1.175494351E-38 to 3.402823466E+38. If precision isn't specified, or <= 24, it's SINGLE precision, otherwise FLOAT is DOUBLE precision. When specified alone, precision can range from 0 to 53. If the scale is defined, too, precision may be up to 255, scale up to 253.
Sign Up Login You must be logged in to post a comment.