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

selectavg(a)afromaagroupbyb类似这种语句,但是复杂一点,现在遇到的问题是groupby之前只有单行结果a的值是6111.11,group之后取的... select avg(a) a from aa group by b 类似这种语句,但是复杂一点,现在遇到的问题是 groupby之前只有单行结果 a的值是6111.11 ,group 之后取的avg值 变成了 6111.111328125,现在还不能单纯的截断到2位小数,因为a的值可以是0-7位小数,任意长度,我想知道多出来的小数位数是怎么回事,能不能去掉 展开
 我来答
巨优多
2013-12-24 · TA获得超过468个赞
知道小有建树答主
回答量:570
采纳率:50%
帮助的人:340万
展开全部
avg之后用一些函数可以去掉,看你是四舍五入,还是什么要求?
1.四舍五入 round(123.5)2.舍去小数 floor(123.5)3.如果小数部分有值就进一 ceil(123.5) 或者 ceiling(123.5)
seesea2517
推荐于2017-10-01 · TA获得超过1480个赞
知道小有建树答主
回答量:512
采纳率:100%
帮助的人:553万
展开全部
多出来的小数可能是因为你的 a 使用的是浮点类型,浮点类型是不精确的,根本原因是由于计算机使用二进制,二进制对于十进制来说有一些数是无法精确表示的。不妨测试一下定点类型来存储。(我们一般对于有小数的值会扩大十倍、百倍来存储,从而避免出现小数)。

可以使用 format() 函数来对计算结果的小数位数进行显示控制。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式