적용 대상:SQL 서버
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Microsoft Fabric
의 SQL 분석 엔드포인트Microsoft Fabric
의 웨어하우스Microsoft Fabric의 SQL 데이터베이스
특정 길이나 전체 자릿수로 반올림한 숫자 값을 반환합니다.
구문
ROUND ( numeric_expression , length [ , function ] )
인수
numeric_expression
정밀 숫자 또는 근사 숫자 데이터 형식 범주의 식입니다.
length
numeric_expression 정밀하게 다소 반올림되어야 합니다. length는 tinyint, smallint 또는 int 형식의 식이어야 합니다. length가 양수이면 numeric_expression은 length로 지정된 10진수 자리의 숫자로 반올림됩니다. length가 음수이면 numeric_expression은 length로 지정된 소수점의 왼쪽에 반올림됩니다.
function
어떤 종류의 수술을 수행해야 할지.
함수 는 tinyint, smallint, int여야 합니다. 함수 가 생략되었거나 (기본값) 값이 될 0 경우, numeric_expression 반올림됩니다. 이 아닌 0 값이 지정되면 numeric_expression 절단됩니다.
반환 형식
다음 데이터 형식을 반환합니다.
| 식 결과 | 반환 형식 |
|---|---|
| tinyint | int |
| smallint | int |
| int | int |
| bigint | bigint |
| decimal 및 numeric 범주(p, s) | 십진법(p, s) |
| money 및 smallmoney 범주 | money |
| float 및 real 범주 | float |
설명
ROUND항상 값을 반환합니다. 길이가 음수이고 소수ROUND점 앞의 숫자 수보다 크면 를 반환합니다0.예제 결과 ROUND(748.58, -4)0 ROUND길이가 음수일 때 데이터 타입과 관계없이 반올림 numeric_expression을 반환합니다.예제 결과 ROUND(748.58, -1)750.00 ROUND(748.58, -2)700.00 ROUND(748.58, -3)748.58이 기본값인 십진법(5, 2) 1000.00으로 돌아가기 때문에 산술 오버플로우가 발생합니다.최대 네 자리로 반올림하려면 입력의 데이터 타입을 변경하세요. 예를 들면 다음과 같습니다.
SELECT ROUND(CAST (748.58 AS DECIMAL (6, 2)), -3);결과 집합은 다음과 같습니다.
1000.00ROUND0에서 절반 반올림(상업적 반올림이라고도 함)으로 동점을 깨뜨립니다.예제 결과 ROUND(1.15, 1)1.2 ROUND(-1.15, 1)-1.2
예제
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
결과 집합은 다음과 같습니다.
151.00
SELECT ROUND(150.75, 0, 1);
GO
결과 집합은 다음과 같습니다.
150.00