首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL浮点型舍入

问MySQL浮点型舍入
EN

Stack Overflow用户
提问于 2020-06-22 20:28:36
回答 1查看 415关注 0票数 1

我的表中有类型为float(12,2)的列。为什么在insert操作过程中,数字1399999.05被舍入为1399999.00?据我所知,如果数字的位数大于float描述中的设置,它会对数字进行四舍五入。但我的号码肯定只有两位数。MySQL版本- 5.7

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-22 21:17:10

这里需要DOUBLE数据类型。FLOAT只允许大约七位有效的小数位精度。文本字符串1399999.05和1399999.00表示的数字在转换为IEEE 32-bit FLOAT values时彼此无法区分。

MySQL忽略FLOAT、DOUBLE、INT (和TINYINT、SMALLINT、BIGINT)数据类型的精度规范。相反,它使用原生数据类型。MySQL遵守小数数据的精度规范。

在您的情况下,您的精度规格是(12,2)。

请考虑阅读以下内容:What Every Computer Scientist Should Know About Floating Point Numbers。

而且,当你失去精确度时可能会出什么问题,你需要的提示是,read this。

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

https://stackoverflow.com/questions/62514492

复制
相关文章

相似问题

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