mysql四舍五入精度丢失问题

转载:http://www.5180it.com/f/article/72276.html




现在有一个查询,就是要将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


果然这时候就对了

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







转载:http://www.5180it.com/f/article/72276.html

你可能感兴趣的:(mysql四舍五入精度丢失问题)