欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

在SQL中对两个整数进行除法运算时,如何保留结果的小数点后两位?

最编程 2024-08-12 07:43:39
...

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

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

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

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

上面的结果是3.19

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

推荐阅读