检查新的数据库结构时,我发现有人将字段从float更改为double。想知道为什么,我查看了mysql文档,但老实说,我不明白其中的区别是什么。
有人能解释一下吗?
发布于 2010-01-29 17:04:08
它们都表示浮点数。FLOAT用于单精度,而DOUBLE用于双精度数字。
MySQL对单精度值使用四个字节,对双精度值使用八个字节。
与浮点数和十进制(数字)数有很大的不同,您可以将它们与DECIMAL数据类型一起使用。它用于存储精确的数字数据值,这与浮点数不同,在浮点数中,保持精确的精度非常重要,例如对于货币数据。
发布于 2015-02-14 10:28:50
也许这个例子可以解释。
CREATE TABLE `test`(`fla` FLOAT,`flb` FLOAT,`dba` DOUBLE(10,2),`dbb` DOUBLE(10,2)); 我们有一个这样的表:
+-------+-------------+
| Field | Type |
+-------+-------------+
| fla | float |
| flb | float |
| dba | double(10,2)|
| dbb | double(10,2)|
+-------+-------------+对于第一个不同之处,我们尝试在每个字段中插入一条带有'1.2'的记录:
INSERT INTO `test` values (1.2,1.2,1.2,1.2);如下表所示:
SELECT * FROM `test`;
+------+------+------+------+
| fla | flb | dba | dbb |
+------+------+------+------+
| 1.2 | 1.2 | 1.20 | 1.20 |
+------+------+------+------+看到区别了吗?
我们尝试下一个例子:
SELECT fla+flb, dba+dbb FROM `test`;你好!我们可以像这样找出区别:
+--------------------+---------+
| fla+flb | dba+dbb |
+--------------------+---------+
| 2.4000000953674316 | 2.40 |
+--------------------+---------+发布于 2010-01-29 16:52:07
Double就像浮点数,只是它们的大小是浮点数的两倍。这允许更高的精确度。
https://stackoverflow.com/questions/2160810
复制相似问题