Mysql AVG 函数出来多余的小数,怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql AVG 函数出来多余的小数,怎么解决相关的知识,希望对你有一定的参考价值。

select avg(a) a from aa group by b 类似这种语句,但是复杂一点,现在遇到的问题是 groupby之前只有单行结果 a的值是6111.11 ,group 之后取的avg值 变成了 6111.111328125,现在还不能单纯的截断到2位小数,因为a的值可以是0-7位小数,任意长度,我想知道多出来的小数位数是怎么回事,能不能去掉

avg之后用一些函数可以去掉,看你是四舍五入,还是什么要求?
1.四舍五入 round(123.5)2.舍去小数 floor(123.5)3.如果小数部分有值就进一 ceil(123.5) 或者 ceiling(123.5)
参考技术A 多出来的小数可能是因为你的 a 使用的是浮点类型,浮点类型是不精确的,根本原因是由于计算机使用二进制,二进制对于十进制来说有一些数是无法精确表示的。不妨测试一下定点类型来存储。(我们一般对于有小数的值会扩大十倍、百倍来存储,从而避免出现小数)。

可以使用 format() 函数来对计算结果的小数位数进行显示控制。本回答被提问者采纳

以上是关于Mysql AVG 函数出来多余的小数,怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver怎么把小数点后面多余的0去掉

sqlserver怎么把小数点后面多余的0去掉

mysql用avg求平均值小数点后面的太多了 怎么限制小数点后2位?

mysql之处理金钱小数点后的多余0

去掉BigDecimal类型变量小数点后多余的零

sql语句 怎么去掉小数点后多余的 0