我应该使用什么MYSQL数据类型来存储64位双精度?

时间:2014-04-25 05:34:02

标签: mysql database database-design floating-point double

我想存储traditional 64-bit floating points,但我对MYSQL中的所有various options感到困惑,例如FLOAT(M,D)REAL(M,D)DOUBLE(M,D)FLOATDOUBLE PRECISION(M,D)REALDOUBLEDECIMAL(M,D)和{{ 1}}。哪一个最适合存储双精度浮点格式?如果我需要指定NUMERICM,我应该指定什么?

1 个答案:

答案 0 :(得分:2)

要存储64位(8字节)浮点数,请使用DOUBLE PRECISION或其别名/等效DOUBLE。他们是一样的。 FLOAT是一个单精度的32位数字,REAL可能是一个,具体取决于服务器配置,因此请远离那个。

除非你有理由,否则不要指定(M,D)值,因为那时你没有得到传统的" 64位数字。

标准免责声明,请勿使用其中任何一项 - 请使用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