1. 程式人生 > >Oracle中round()函式與trunc()函式的區別?

Oracle中round()函式與trunc()函式的區別?

round(x[,y])
【功能】返回四捨五入後的值 
【引數】x,y,數字型表示式,如果y不為整數則擷取y整數部分,如果y>0則四捨五入為y位小數,如果y小於0則四捨五入到小數點向左第y位。 
【返回】數字 
【示例】 select round(5555.6666,2.1),round(5555.6666,-2.6),round(5555.6666) from dual; 
返回: 5555.67 , 5600 , 5556 

【相近】trunc(x[,y]) 返回擷取後的值,用法同round(x[,y]),只是不四捨五入


trunc(x[,y])
【功能】返回x按精度y擷取後的值 
【引數】x,y,數字型表示式,如果y不為整數則擷取y整數部分,如果y>0則擷取到y位小數,如果y小於0則擷取到小數點向左第y位,小數前其它資料用0表示。 

【返回】數字 
【示例】 select trunc(5555.66666,2.1),trunc(5555.66666,-2.6),trunc(5555.033333) from dual; 
返回:5555.66 5500 5555 

【相近】round(x[,y]) 返回擷取後的值,用法同trunc(x[,y]),只是要做四捨五入

Round 函式 
 語法為ROUND(number,num_digits)

其中Number是需要進行四捨五入的數字;Num_digits為指定的位數,按此位數進行四捨五入,如果 num_digits 大於 0,則四捨五入到指定的小數位,如果 num_digits 等於 0,則四捨五入到最接近的整數,如果 num_digits 小於 0,則在小數點左側進行四捨五入。

例如:

ROUND(2.149, 0) 將 2.149 四捨五入到一個整數結果為2。

ROUND(2.15, 1) 將 2.15 四捨五入到一個小數位,結果為2.2。

ROUND(2.149, 1) 將 2.149 四捨五入到一個小數位結果為2.1。

ROUND(-1.475, 2) 將 -1.475 四捨五入到兩小數位結果為-1.48)。

ROUND(21.5, -1) 將 21.5 四捨五入到小數點左側一位結果為20。

select round(23.4) from dual;