我想存储traditional 64-bit floating points,但我对MYSQL中的所有various options感到困惑,例如FLOAT(M,D)
,REAL(M,D)
,DOUBLE(M,D)
,FLOAT
,DOUBLE PRECISION(M,D)
,REAL
,DOUBLE
,DECIMAL(M,D)
和{{ 1}}。哪一个最适合存储双精度浮点格式?如果我需要指定NUMERIC
或M
,我应该指定什么?
答案 0 :(得分:2)
要存储64位(8字节)浮点数,请使用DOUBLE PRECISION
或其别名/等效DOUBLE
。他们是一样的。 FLOAT
是一个单精度的32位数字,REAL
可能是一个,具体取决于服务器配置,因此请远离那个。
标准免责声明,请勿使用其中任何一项 - 请使用DECIMAL
- 除非您完全了解浮点数存储和操作的固有不精确性。例如,货币值几乎总是候选DECIMAL
列。
http://dev.mysql.com/doc/refman/5.7/en/numeric-types.html
http://dev.mysql.com/doc/refman/5.7/en/floating-point-types.html