Oracle中round()函式與trunc()函式的區別?
阿新 • • 發佈:2019-01-27
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])
【功能】返回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
【功能】返回四捨五入後的值
【引數】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;