mysql四舍五入精度丢失问题

转载:mysql四舍五入精度丢失问题—5181it

现在有一个查询,就是要将double的值四舍五入保留整数

经过网上查

ROUND(X,D)

返回参数X的四舍五入的有D为小数的一个数字。如果D为0,结果将没有小数点或小数部分。

select r,ROUND(r) from table_xx

查询发现,大部分结果都是对的

但仔细看 有个26.5并没有四舍五入,使用select ROUND(26.5, 0);  查看也是对的,为27

真是百思不得其解,

经过网上查询,mysql确实存在精度丢失问题

可以在查询值的后面加个比较小的而且不影响四舍五入的数值

如下

select r,ROUND(r+0.000001,0) from table_xx

果然这时候就对了

为此记录下来和大家分享一下,也欢迎大家讨论一下原因或更好的解决方法。

 转载:mysql四舍五入精度丢失问题—5181it

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值