ROUND(Transact-SQL)

특정 길이나 전체 자릿수로 반올림한 숫자 값을 반환합니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

ROUND ( numeric_expression , length [ ,function ] )

인수

  • numeric_expression
    bit 데이터 형식을 제외한 정확한 수치 또는 근사치 데이터 형식 범주의 입니다.

  • length
    numeric_expression을 반올림하는 전체 자릿수입니다. length는 tinyint, smallint 또는 int 유형의 식이어야 합니다. length가 양수일 경우 numeric_expression은 length에서 지정한 소수 자릿수로 반올림됩니다. length가 음수일 경우 numeric_expression은 length에서 지정한 대로 소수점의 왼쪽에서 반올림됩니다.

  • function
    수행할 연산의 유형입니다. function은 tinyint, smallint 또는 int여야 합니다. function을 생략하거나 값이 0(기본값)일 경우 numeric_expression은 반올림됩니다. 0이 아닌 값을 지정하면 numeric_expression이 잘립니다.

반환 형식

다음 데이터 형식을 반환합니다.

식 결과

반환 형식

tinyint

int

smallint

int

int

int

bigint

bigint

decimal 및 numeric 범주(p, s)

decimal(p, s)

money 및 smallmoney 범주

money

float 및 real 범주

float

주의

ROUND는 항상 하나의 값을 반환합니다. length가 음수이고 소수점 전의 자릿수보다 클 경우 ROUND는 0을 반환합니다.

결과

ROUND(748.58, -4)

0

length가 음수일 경우 ROUND는 데이터 형식에 관계없이 반올림된 numeric_expression을 반환합니다.

결과

ROUND(748.58, -1)

750.00

ROUND(748.58, -2)

700.00

ROUND(748.58, -3)

748.58은 기본적으로 10진수(5,2)로 1000.00을 반환할 수 없기 때문에 산술 오버플로가 발행합니다.

4자릿수까지 반올림하려면 입력 데이터 형식을 변경합니다. 예를 들면 다음과 같습니다.

SELECT ROUND(CAST (748.58 AS decimal (6,2)),-3);

1000.00

1.ROUND 및 어림값 사용

다음 예에서는 마지막 자릿수가 항상 어림값인 ROUND를 사용하는 두 개의 식을 보여 줍니다.

SELECT ROUND(123.9994, 3), ROUND(123.9995, 3)
GO

결과 집합은 다음과 같습니다.

----------- -----------
123.9990    124.0000    

2.ROUND 사용 및 어림값 반올림

다음 예에서는 반올림과 어림값을 보여 줍니다.

SELECT ROUND(123.4545, 2);
GO
SELECT ROUND(123.45, -2);
GO

결과 집합은 다음과 같습니다.

----------

123.4500

(1 row(s) affected)

--------

100.00

(1 row(s) affected)

3.ROUND를 사용하여 자르기

다음 예에서는 두 개의 SELECT 문을 사용하여 반올림과 자르기 간의 차이를 보여 줍니다. 첫 번째 문은 결과를 반올림하고 두 번째 문은 결과를 자릅니다.

SELECT ROUND(150.75, 0);
GO
SELECT ROUND(150.75, 0, 1);
GO

결과 집합은 다음과 같습니다.

--------
151.00

(1 row(s) affected)

--------
150.00

(1 row(s) affected)

참고 항목

참조

CEILING(Transact-SQL)

데이터 형식(Transact-SQL)

식(Transact-SQL)

FLOOR(Transact-SQL)

수치 연산 함수(Transact-SQL)