다음을 통해 공유


ROUND(Transact-SQL)

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) Microsoft Fabric의 SQL 분석 엔드포인트 Microsoft Fabric의 웨어하우스

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

Transact-SQL 구문 표기 규칙

구문

ROUND ( numeric_expression , length [ ,function ] )  

인수

numeric_expression
정확한 숫자 또는 근사치 숫자 데이터 형식 범주의 식입니다.

length
numeric_expression을 반올림할 전체 자릿수입니다. lengthtinyint, smallint 또는 int 형식의 식이어야 합니다. length가 양수이면 numeric_expressionlength로 지정된 10진수 자리의 숫자로 반올림됩니다. length가 음수이면 numeric_expressionlength로 지정된 소수점의 왼쪽에 반올림됩니다.

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

반환 형식

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

식 결과 반환 형식
tinyint int
smallint int
int int
bigint bigint
decimalnumeric 범주(p, s) decimal(p, s)
moneysmallmoney 범주 money
floatreal 범주 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

예제

A. ROUND 및 어림값 사용

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

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

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

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

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

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

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

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

----------  ----------
123.4500    100.00

C. 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)