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

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