MySQL中的float类型慎用!慎用!慎用!

文章讨论了在MySQL中使用float类型存储数值时,超过6位有效数字会四舍五入的问题,导致显示不准确。建议使用DECIMAL类型,特别是对于金额字段,以保证精度。DECIMAL对应Java中的BigDecimal类型,能更好地处理财务数据。
摘要由CSDN通过智能技术生成

在前端输入一串数字后有时候展示值与输入的内容一致,有时候却不一致。经分析,原来是MySQL数据库中字该字段的类型是float,该字段的值超过6位有效数字后就会进行四舍五入截取,举例来说:假设float类型字段的输入值是123456789,那么它的科学计数法是1.23456789E8;由于有效位数是6位,所以在7数字时会四舍五入,即值为1.23457E8,十进制值就是123457000

1、float类型值不超过6位有效数的效果
在这里插入图片描述
2、float类型值超过6位有效数的效果(后三位全是0!!!)
在这里插入图片描述

注意:有关金额的字段类型最好不用float类型!!!

如果一定要用小数,那么,请选择DECIMAL类型。
在这里插入图片描述
上图配置表示:整数部分+小数部分总共是65位数,小数位保留两位数字。
MySQL中的DECIMAL对应Java中的java.math.BigDecimal类型的变量。

参考:
https://www.cnblogs.com/bien94/p/13332163.html
https://blog.csdn.net/weixin_35830723/article/details/113632107
https://www.cnblogs.com/danielzzz/p/16824214.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值