首页 > 数据库技术 > 详细

MySQL float 与decimal 各中的区别。

时间:2015-05-17 09:15:13      阅读:248      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!