首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL: float和double有什么区别?

问MySQL: float和double有什么区别?
EN

Stack Overflow用户
提问于 2010-01-29 16:50:35
回答 6查看 155.6K关注 0票数 124

检查新的数据库结构时,我发现有人将字段从float更改为double。想知道为什么,我查看了mysql文档,但老实说,我不明白其中的区别是什么。

有人能解释一下吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-01-29 17:04:08

它们都表示浮点数。FLOAT用于单精度,而DOUBLE用于双精度数字。

MySQL对单精度值使用四个字节,对双精度值使用八个字节。

与浮点数和十进制(数字)数有很大的不同,您可以将它们与DECIMAL数据类型一起使用。它用于存储精确的数字数据值,这与浮点数不同,在浮点数中,保持精确的精度非常重要,例如对于货币数据。

票数 115
EN

Stack Overflow用户

发布于 2015-02-14 10:28:50

也许这个例子可以解释。

代码语言:javascript
复制
CREATE TABLE `test`(`fla` FLOAT,`flb` FLOAT,`dba` DOUBLE(10,2),`dbb` DOUBLE(10,2)); 

我们有一个这样的表:

代码语言:javascript
复制
+-------+-------------+
| Field | Type        |
+-------+-------------+
| fla   | float       |
| flb   | float       |
| dba   | double(10,2)|
| dbb   | double(10,2)|
+-------+-------------+

对于第一个不同之处,我们尝试在每个字段中插入一条带有'1.2'的记录:

代码语言:javascript
复制
INSERT INTO `test` values (1.2,1.2,1.2,1.2);

如下表所示:

代码语言:javascript
复制
SELECT * FROM `test`;

+------+------+------+------+
| fla  | flb  | dba  | dbb  |
+------+------+------+------+
|  1.2 |  1.2 | 1.20 | 1.20 |
+------+------+------+------+

看到区别了吗?

我们尝试下一个例子:

代码语言:javascript
复制
SELECT fla+flb, dba+dbb FROM `test`;

你好!我们可以像这样找出区别:

代码语言:javascript
复制
+--------------------+---------+
| fla+flb            | dba+dbb |
+--------------------+---------+
| 2.4000000953674316 |    2.40 |
+--------------------+---------+
票数 91
EN

Stack Overflow用户

发布于 2010-01-29 16:52:07

Double就像浮点数,只是它们的大小是浮点数的两倍。这允许更高的精确度。

票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2160810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档