sql中两个整数相除,结果保留两位小数小细节整理

为了方便说明,直接截取一个sql:

round(if(a.days=0,0,a.cnt/a.days*1.0),2) dayAvgCnt

假设这个days位int类型,结果是31天;beforeCnt也是int的类型,结果是99。那个这个计算结果永远是 3.0 。

round(if(a.days=0,0,a.cnt*1.0/a.days),2) dayAvgCnt

上面的结果是3.19

原因:
(1)第一个sql中两个int类型相除,不管有没有小数位,结果都是只取整数位,然后后面再加上 ‘’ .0 ‘’。
(2)第二个sql中先乘以1.0,此时数据会变成double类型,然后double类型去除以一个整数,结果还是double类型,所以上面的计算结果取的是 3.19

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章