ROUND 함수

ROUND 숫자 함수는 제공된 값을 주어진 자리 수까지 반올림합니다.

구문

구문 다이어그램 읽기시각적 구문 다이어그램 건너뛰기ROUND(소스 _number, 정밀도(precision)MODE1RoundingMode)
RoundingMode
구문 다이어그램 읽기시각적 구문 다이어그램 건너뛰기ROUND_UPROUND_DOWNROUND_CEILINGROUND_FLOORROUND_HALF_UPROUND_HALF_EVENROUND_HALF_DOWN
노트:
  • 1 모드을 지정하지 않으면 ROUND_HALF_EVEN값이 사용됩니다.

precision이 양수인 경우 source_number는 소수점 오른쪽의 precision 자리로 반올림됩니다. precision이 음수인 경우 결과는 소수점 왼쪽의 precision 자리의 절대 값으로 반올림된 source_number입니다.

source_number는 임의의 내장 숫자 데이터 유형일 수 있고, precision은 정수여야 합니다. source_number 가 NULL이 아닌 경우(그 경우에는 결과가 NULL임), 결과는 source_number 매개변수와 동일한 데이터 유형입니다.

이것은 함수의 결과가 다음과 같음을 의미합니다.
  • source_number가 INTEGER인 경우 INTEGER
  • source_number가 FLOAT인 경우 FLOAT
  • source_number가 DECIMAL인 경우 DECIMAL
반올림되는 경우, RoundingMode가 지정되지 않는 한 은행가 또는 짝수로 반올림 대칭 반올림 규칙이 기본적으로 사용됩니다.

RoundingMode

RoundingMode는 다음 값 중 하나를 사용할 수 있습니다.
ROUND_UP
0에서 먼쪽으로 반올림합니다. 항상 0이 아닌 버려진 소수 앞의 숫자를 증분시킵니다. 이 반올림 모드에서는 계산된 값의 크기를 줄이지 않습니다.
ROUND_DOWN
0을 향해서 반올림합니다. 버려진 소수 앞의 숫자를 절대 증분시키지 않습니다(즉, 자릅니다). 이 반올림 모드에서는 계산된 값의 크기를 늘리지 않습니다.
ROUND_CEILING
양의 무한대를 향해서 반올림합니다. 10진수가 양수인 경우 ROUND_UP처럼 작동하고, 음수인 경우 ROUND_DOWN처럼 작동합니다. 이 반올림 모드에서는 계산된 값을 줄이지 않습니다.
ROUND_FLOOR
음의 무한대를 향해 반올림합니다. 10진수가 양수인 경우 ROUND_DOWN처럼 작동하고, 음수인 경우 ROUND_UP처럼 작동합니다. 이 반올림 모드에서는 계산된 값을 늘리지 않습니다.
ROUND_HALF_UP
양쪽 인접한 정수가 등거리가 아닌 경우 "가장 가까운 정수"를 향해서 반올림하며, 등거리인 경우에는 올림합니다. 버려지는 소수가 0.5 이상인 경우 ROUND_UP처럼 작동하고, 그렇지 않으면 ROUND_DOWN처럼 작동합니다. 이 반올림 모드가 학교에서 일반적으로 학습하는 반올림 모드입니다.
ROUND_HALF_DOWN
양쪽 인접한 정수가 등거리가 아닌 경우 "가장 가까운 정수"를 향해서 반올림하며, 등거리인 경우에는 내림합니다. 버려지는 소수가 0.5보다 큰 경우 ROUND_UP처럼 작동하고, 그렇지 않으면 ROUND_DOWN처럼 작동합니다.
ROUND_HALF_EVEN
양쪽 인접한 정수가 등거리가 아닌 경우 "가장 가까운 정수"를 향해서 반올림하며, 등거리인 경우에는 짝수를 향해 반올림합니다. 버려지는 소수의 왼쪽 숫자가 홀수인 경우 ROUND_HALF_UP처럼 작동하고, 짝수인 경우 ROUND_HALF_DOWN처럼 작동합니다. 이것은 일련의 계산을 반복적으로 적용할 때 누적 오류를 최소화하는 반올림 모드이며, 가끔 은행가 반올림이라고도 부릅니다.
다음 표는 여러 가지 반올림 모드에서 0의 정밀도를 갖는 반올림 조작을 요약한 것입니다.
입력 숫자 ROUND UP ROUND DOWN ROUND CEILING ROUND FLOOR ROUND HALF UP ROUND HALF DOWN ROUND HALF EVEN
5.5 6 5 6 5 6 5 6
2.5 3 2 3 2 3 2 2
1.6 2 1 2 1 2 2 2
1.1 2 1 2 1 1 1 1
1.0 1 1 1 1 1 1 1
-1.0 -1 -1 -1 -1 -1 -1 -1
-1.1 -2 -1 -1 -2 -1 -1 -1
-1.6 -2 -1 -1 -2 -2 -2 -2
-2.5 -3 -2 -2 -3 -3 -2 -2
-5.5 -6 -5 -5 -6 -6 -5 -6
기본 반올림 모드(ROUND_HALF_EVEN)를 사용하는 예:
ROUND(27.75, 2)
는 다음을 리턴합니다.27.75
ROUND(27.75, 1)
는 다음을 리턴합니다.27.8
ROUND(27.75, 0)
는 다음을 리턴합니다.28
ROUND(27.75, -1)
는 다음을 리턴합니다.30
0의 정밀도를 갖고 반올림 모드를 사용하는 예:
ROUND(5.5, 0 MODE ROUND_UP);
는 다음을 리턴합니다.6
ROUND(5.5, 0 MODE ROUND_DOWN);
는 다음을 리턴합니다.5
ROUND(5.5, 0 MODE ROUND_CEILING);
는 다음을 리턴합니다.6
ROUND(5.5, 0 MODE ROUND_FLOOR);
는 다음을 리턴합니다.5
ROUND(5.5, 0 MODE ROUND_HALF_UP);
는 다음을 리턴합니다.6
ROUND(5.5, 0 MODE ROUND_HALF_DOWN);
는 다음을 리턴합니다.5
ROUND(5.5, 0 MODE ROUND_HALF_EVEN);
는 다음을 리턴합니다.6
ROUND(2.5, 0 MODE ROUND_UP);
는 다음을 리턴합니다.3
ROUND(2.5, 0 MODE ROUND_DOWN);
는 다음을 리턴합니다.2
ROUND(2.5, 0 MODE ROUND_CEILING);
는 다음을 리턴합니다.3
ROUND(2.5, 0 MODE ROUND_FLOOR);
는 다음을 리턴합니다.2
ROUND(2.5, 0 MODE ROUND_HALF_UP);
는 다음을 리턴합니다.3
ROUND(2.5, 0 MODE ROUND_HALF_DOWN);
는 다음을 리턴합니다.2
ROUND(2.5, 0 MODE ROUND_HALF_EVEN);
는 다음을 리턴합니다.2

가능한 경우, 스케일은 주어진 값으로 변경됩니다. 제공된 스케일 내에서 결과를 표시할 수 없는 경우, 결과는 INFINITY입니다.