Mysql数据精度问题:decimal、double、float

这个问题以前就遇到过,但是忘记了,刚刚又遇到了,再次记录下。

发现问题的原因:
刚才写个脚本,去校验业务系统和ODS的数据差异,发现差了0.01,而且有好几天的差异,很奇怪,就按照订单导出来到Excel中看,发现数据是一致的,而且ODS是对的。
印象中是数据类型的问题,然后看了下mysql中是float,查了下资料,发现的确是这样。

Mysql中的float和double是非标准数据类型,也就是说数据库中存储的是近似值,不保证准确性,如果是保存钱之类的数据,最好不要使用。

详细介绍可以参考官网:
Floating-Point Types (Approximate Value) - FLOAT, DOUBLE

网上的例子有很多,官网上也有例子,都可以参考下,再分享一篇文章,作者写的挺好:
MySQL如何选择float, double, decimal

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容