ROUND(Transact-SQL)
적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) Microsoft Fabric의 SQL 분석 엔드포인트 Microsoft Fabric의 웨어하우스
특정 길이나 전체 자릿수로 반올림한 숫자 값을 반환합니다.
구문
ROUND ( numeric_expression , length [ ,function ] )
인수
numeric_expression
정확한 숫자 또는 근사치 숫자 데이터 형식 범주의 식입니다.
length
numeric_expression을 반올림할 전체 자릿수입니다. length는 tinyint, smallint 또는 int 형식의 식이어야 합니다. length가 양수이면 numeric_expression은 length로 지정된 10진수 자리의 숫자로 반올림됩니다. 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 |
예제
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)