헤르메스 LIFE

[Oracle] TRUNC, ROUND 차이 본문

Database

[Oracle] TRUNC, ROUND 차이

헤르메스의날개 2015. 10. 2. 15:33
728x90


TRUNC : 버림

ROUND : 올림


TRUNC(1239.19, -2)

ROUND(1239.19, -2)


 값

 TRUNC 결과

ROUND 결과

 1239.19, -2

 1200

 1200

 1239.19, -1

 1230

 1240

 1239.19

 1239

 1239

 1239.19, 1

 1239.1

 1239.2

 1239.19, 2

 1239.19

 1239.19


 

 


CREATE OR REPLACE FUNCTION F_ROUNDUP(

  P_NUM IN NUMBER

, P_PLACE IN INTEGER := 0

)

RETURN NUMBER

IS

vBase NUMBER;

BEGIN

IF (P_NUM = 0) THEN

RETURN 0;

END IF;

vBase := 10 ** P_PLACE ; -- POWER(10, P_PLACE)

RETURN CEIL(ABS(P_NUM) * vBase) / vBase * SIGN(P_NUM);

END;


/**
 * 10의 자리에서 무조건 UP
 */
SELECT F_ROUNDUP(1234, -1)
  FROM DUAL
;

1240




728x90