카테고리:

숫자 함수 (반올림 및 잘림)

TRUNCATE , TRUNC

입력 식을 0에 근접한, 가장 가까운(또는 같은) 정수로 내림하거나, 소수점 이하의 지정된 자릿수를 가진 가장 가까운, 같거나 작은 값으로 내림합니다.

이러한 함수는 동의어입니다.

참고

TRUNC는 오버로드됩니다. 날짜, 시간, 타임스탬프를 지정된 부분으로 자르는 날짜/시간 함수로 사용할 수도 있습니다.

참고 항목:

CEIL , FLOOR , ROUND

구문

TRUNCATE( <input_expr> [ , <scale_expr> ] )

TRUNC( <input_expr> [ , <scale_expr> ] )
Copy

인자

input_expr

연산할 값 또는 식입니다. 데이터 타입은 FLOAT 또는 NUMBER와 같은 숫자 데이터 타입 중 하나여야 합니다.

scale_expr

출력이 소수점 뒤에 포함해야 하는 자릿수입니다. 식은 -38에서 +38 사이의 정수로 평가되어야 합니다.

기본 scale_expr 은 0이며, 이는 함수가 소수점 이하의 모든 숫자를 제거함을 의미합니다.

스케일에 대한 정보는 아래의 사용법 노트를 참조하십시오.

반환

반환된 값의 데이터 타입은 NUMBER입니다(정밀도, 스케일).

입력 스케일이 0보다 크거나 같으면 출력 스케일은 일반적으로 입력 스케일과 일치합니다.

입력 스케일이 음수이면 출력 스케일은 0입니다.

예:
  • TRUNCATE(3.14, 1)에 의해 반환된 데이터 타입은 NUMBER(4, 1)입니다.

  • TRUNCATE(3.14, 0)에 의해 반환된 데이터 타입은 NUMBER(4, 0)입니다.

  • TRUNCATE(33.33, -1)에 의해 반환된 데이터 타입은 NUMBER(5, 0)입니다.

스케일이 0이면 값은 사실상 정수입니다.

사용법 노트

  • scale_expr 이 음수인 경우, 숫자를 조정할 소수점 앞의 자릿수를 지정합니다. 예를 들어, 스케일이 -2이면 결과는 100의 배수입니다.

  • scale_expr 이 입력 식보다 크면 함수는 아무런 영향을 미치지 않습니다.

  • input_expr 또는 scale_expr 이 NULL이면 결과는 NULL입니다.

  • 잘라내기는 더 작은 숫자가 아니라 0을 향해 수행됩니다. 예를 들어, TRUNCATE(-9.6)의 결과는 -10이 아니라 -9입니다.

다음 예는 TRUNC 함수를 보여줍니다.

SELECT DISTINCT n, TRUNCATE(n) 
  FROM test_1
  ORDER BY n;
+----------+-------------+
|        N | TRUNCATE(N) |
|----------+-------------|
| -975.975 |        -975 |
|  135.135 |         135 |
+----------+-------------+
Copy
SELECT n, scale, TRUNC(n, scale) 
  FROM test_1 
  ORDER BY n, scale;
+----------+-------+-----------------+
|        N | SCALE | TRUNC(N, SCALE) |
|----------+-------+-----------------|
| -975.975 |    -1 |        -970     |
| -975.975 |     0 |        -975     |
| -975.975 |     2 |        -975.97  |
|  135.135 |    -2 |         100     |
|  135.135 |     0 |         135     |
|  135.135 |     1 |         135.1   |
|  135.135 |     3 |         135.135 |
|  135.135 |    50 |         135.135 |
|  135.135 |  NULL |            NULL |
+----------+-------+-----------------+
Copy