2017-08-17 69 views
0

在postgres的,如果值爲1.01到1,如果1.1然後在postgresql中如何舍入?

如何舍入的值具有如下圖案(無論是浮動,BigDecimal的或雙),

(1)如果該值是1.0,即,如果該小數開始爲零,則這不應該四捨五入,值應該是整數。即,在這種情況下「1」。 (2)如果該值是1.1,即如果小數位以數字大於0開始,那麼整個數字應舍入到下一個數字。即如果是1.1,那麼它應該是2.

回答

0

第一輪捨棄第一個最小值到最接近的值,然後在它上面執行ceil函數以得到期望的結果。

select case when mod(floor(1.09*10),10)=0 then ceil(round(1.09)) else ceil(round(1.09,1)) end ; 
select case when mod(floor(1.1*10),10)=0 then ceil(round(1.1)) else ceil(round(1.1,1)) end ; 

select case when mod(floor(col*10),10)=0 then ceil(round(col)) else ceil(round(col,1)) end ;