다음을 통해 공유


float 및 real(Transact-SQL)

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

부동 소수점 숫자 데이터에 사용하는 근사 숫자 데이터 형식입니다. 부동 소수점 데이터는 근사값이므로 해당 데이터 형식 범위에 있는 모든 값을 정확하게 표현할 수는 없습니다. real의 ISO 동의어는 float(24) 입니다.

Transact-SQL 구문 표기 규칙

구문

float [ (n) ] 여기서 n은 과학적 표기법으로 float 숫자의 가수를 저장하는 데 사용되는 비트 수로서, 전체 자릿수 및 스토리지 크기를 결정합니다. n이 지정된 경우 그 값은 1에서 53 사이여야 합니다. n의 기본값은 53입니다.

n 자릿수 스토리지 크기
1-24 7자리 4바이트
25-53 15자리 8바이트

참고

SQL Server에서는 n을 가능한 두 값 중 하나로 처리합니다. 1<=n<=24이면 n24로 처리됩니다. 25<=n<=53이면 n53으로 처리됩니다.

SQL Server float[ (n) ] 데이터 형식은 1부터 53까지 n의 모든 값에 대해 ISO 표준을 준수합니다. double precision의 동의어는 float(53) 입니다.

설명

데이터 형식 범위 스토리지
float - 1.79E+308에서 -2.23E-308, 0과 2.23E-308에서 1.79E+308 이 값은 n의 값에 따라 달라집니다.
real - 3.40E+38에서 -1.18E - 38, 0과 1.18E-38에서 3.40E + 38 4바이트

float 및 real 데이터 형식을 근사 데이터 형식이라고합니다. float 및 real의 동작은 대략적인 숫자 데이터 형식에 대한 IEEE 754 사양을 따릅니다. MSVC(Microsoft Visual C) 컴파일러에서 IEEE 754 표준을 사용하는 방법을 이해하려면 IEEE 부동 소수점 표현을 참조 하세요.

근사 숫자 데이터 형식은 많은 숫자에 대해 지정된 정확한 값을 저장하지 않습니다. 값의 근사치를 저장합니다. 일부 애플리케이션의 경우 지정된 값과 저장된 근사값 간의 작은 차이는 관련이 없습니다. 하지만 다른 사람들에게는 그 차이가 중요합니다. 부동 소수점 및 실제 데이터 형식의 대략적인 특성 때문에 정확한 숫자 동작이 필요한 경우 이러한 데이터 형식을 사용하지 마세요. 정확한 숫자 값이 필요한 예는 재무 또는 비즈니스 데이터, 반올림과 관련된 작업 또는 같음 검사입니다. 이러한 경우 정수, 10진수, 숫자, 돈 또는 smallmoney 데이터 형식을 사용합니다.

WHERE 절 검색 조건, 특히 = 및 <> 연산자에서 float 또는 real 열을 사용하지 않습니다. 부동 열과 실제 열을 > 비교로 < 제한하는 것이 가장 좋습니다.

float 및 real 데이터 변환

부동 소수점은 정수 형식으로 변환될 때 잘립니다.

float 또는 real에서 문자 데이터로 변환하려는 경우 STR 문자열 함수를 사용하는 것이 CAST()보다 일반적으로 더 유용합니다. 그 이유는 STR()을 사용하면 서식을 더 많이 제어할 수 있기 때문입니다. 자세한 내용은 STR(Transact-SQL)함수(Transact-SQL)를 참조하세요.

SQL Server 2016(13.x) 이전에는 float 값을 decimal 또는 numeric로 변환하는 경우 정밀도 값이 17자리로 제한됩니다. 5E-18(과학적 표기법 5E-18 또는 10진 표기법 0.000000000000000005를 사용하여 설정된 경우) 미만의 float 값은 0으로 버림됩니다. SQL Server 2016(13.x)부터 더 이상 제한되지 않습니다.