码迷,mamicode.com
首页 > 数据库 > 详细

MySQL float 与decimal 各中的区别。

时间:2015-05-17 09:16:36      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

想一个问题:

1/3+1/3+1/3=1.0

0.3+0.3+0.3 =0.9

想一想在小数的世界里要什么表示1/3呢!它的办法就是取一个与1/3十分接近的小数来代替;如上面例子中的0.3来代替1/3;这样问题就来了存进去的是3个1/3取出时就只有0.9。

也许你感觉1/3这个数太特别了它本来就有无数位,近似值代替也是没有办法的。可是你知道吗?在二进制的世界里0.1这样的数也不是可以精确的存储的(float),如果不明白这点就去看IEEE 754 标准。下面给出一个0.1的例子。

create table t(x float); insert into t(x) values(0.1);

技术分享

create table t2(x decimal); insert into t2(0.1);

技术分享

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

decimal 是以字符方式存储的,它的精确度不会丢失。

 

MySQL float 与decimal 各中的区别。

标签:

原文地址:http://www.cnblogs.com/JiangLe/p/4509122.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!