博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL float 与decimal 各中的区别。
阅读量:6551 次
发布时间:2019-06-24

本文共 542 字,大约阅读时间需要 1 分钟。

想一个问题:

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 是以字符方式存储的,它的精确度不会丢失。

 

转载地址:http://qfnco.baihongyu.com/

你可能感兴趣的文章
如何在Vblock里配置Boot from SAN
查看>>
ZBar之ZBarReaderViewController
查看>>
Android学习笔记——Handler(一)
查看>>
Nuget~管理自己的包包~丢了的包包快速恢复
查看>>
Hadoop单机模式安装-(3)安装和配置Hadoop
查看>>
$.extend({},defaults, options) --(初体验三)
查看>>
自己主动瀑布流布局和实现代码加载
查看>>
maven的一些依赖
查看>>
腾讯云短信服务使用记录与.NET Core C#代码分享
查看>>
jQuery hover() 方法
查看>>
sql语句
查看>>
android 一步一步教你集成tinker(热修复)
查看>>
到底有多少内存
查看>>
centos7.3 安装ovirt-engine4.0 版本
查看>>
putty、xshell的密钥认证
查看>>
Jenkins+git+tomcat 自动化持续部署
查看>>
项目log日志打印
查看>>
Openstack的环境的Mitaka部署环境服务,实例(1)
查看>>
Redis总结(七)Redis运维常用命令
查看>>
常用shell
查看>>