zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

MySQL精准存储小数的方法(mysql存小数)

mysql方法存储 精准 小数
2023-06-13 09:17:11 时间

在MySQL中,设计表结构时会碰到不同的数据类型,其中有一种数据类型为decimal,它可以用来存储小数。在使用过程中,很多人发现用decimal精确存储小数时会出现误差,比如:

0.22得到数据库存储为:0.21999999999999999。

如果要解决这个问题,MySQL里面有较为精准的存储小数的方法,它可以将小数精确的存放在MySQL的表中。

精准的方法是使用MySQL的BINARY数据类型,首先在表设置中,指定要存储小数的字段类型:

MySQL ALTER TABLE tableName 
MySQL ADD columnName BINARY(4);

即可使用BINARY(4)来表示4个字节,每个字节可以存储一个小数。

然后可以用CAST函数把小数数据类型转换为BINARY类型:

MySQL INSERT INTO tableName 
MySQL SET columnName=CAST(0.22 As BINARY(4));

最后,使用select 命令,我们就可以看到在MySQL表中,小数0.22存储的是精确的数值0.22了,就没有误差了。

通过使用BINARY类型,我们不仅可以解决在MySQL里精准存储小数的问题,还能提升存储的效率,比如DECIMAL(8,2)有8个字节长度,而BINARY(4)只有4个字节。

因此,在MySQL里精准存储小数,可以使用BINARY数据类型,将数据类型转换为BINARY类型,然后再插入到表中,即可将小数精确的存储在MySQL表中,解决小数精度丢失的问题,同时又能节省空间。


我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 MySQL精准存储小数的方法(mysql存小数)