float 및 real(Transact-SQL)float and real (Transact-SQL)

적용 대상: 예SQL Server 예Azure SQL Database 예Azure SQL Data Warehouse 예병렬 데이터 웨어하우스 APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

부동 소수점 숫자 데이터에 사용하는 근사 숫자 데이터 형식입니다.Approximate-number data types for use with floating point numeric data. 부동 소수점 데이터는 근사값이므로 해당 데이터 형식 범위에 있는 모든 값을 정확하게 표현할 수는 없습니다.Floating point data is approximate; therefore, not all values in the data type range can be represented exactly. real의 ISO 동의어는 float(24) 입니다.The ISO synonym for real is float(24).

항목 링크 아이콘 Transact-SQL 구문 규칙Topic link icon Transact-SQL Syntax Conventions


float [ ( n ) ] 여기서 n은 과학적 표기법으로 float 숫자의 가수를 저장하는 데 사용되는 비트 수로서, 전체 자릿수 및 스토리지 크기를 결정합니다.float [ (n) ] Where n is the number of bits that are used to store the mantissa of the float number in scientific notation and, therefore, dictates the precision and storage size. n이 지정된 경우 그 값은 1에서 53 사이여야 합니다.If n is specified, it must be a value between 1 and 53. n의 기본값은 53입니다.The default value of n is 53.

nn value 전체 자릿수Precision 스토리지 크기Storage size
1-241-24 7자리7 digits 4바이트4 bytes
25-5325-53 15자리15 digits 8바이트8 bytes


SQL ServerSQL Server에서는 n을 가능한 두 값 중 하나로 처리합니다.treats n as one of two possible values. 1<=n<=24이면 n24로 처리됩니다.If 1<=n<=24, n is treated as 24. 25<=n<=53이면 n53으로 처리됩니다.If 25<=n<=53, n is treated as 53.

SQL ServerSQL Serverfloat[ (n) ] 데이터 형식은 1부터 53까지 n의 모든 값에 대해 ISO 표준을 준수합니다.The SQL ServerSQL Server float[(n)] data type complies with the ISO standard for all values of n from 1 through 53. double precision의 동의어는 float(53) 입니다.The synonym for double precision is float(53).


데이터 형식Data type 범위Range 스토리지Storage
floatfloat - 1.79E+308에서 -2.23E-308, 0과 2.23E-308에서 1.79E+308- 1.79E+308 to -2.23E-308, 0 and 2.23E-308 to 1.79E+308 이 값은 n의 값에 따라 달라집니다.Depends on the value of n
realreal - 3.40E+38에서 -1.18E - 38, 0과 1.18E-38에서 3.40E + 38- 3.40E + 38 to -1.18E - 38, 0 and 1.18E - 38 to 3.40E + 38 4바이트4 Bytes

float 및 real 데이터 변환Converting float and real data

float의 값은 정수 형식으로 변환될 때 잘립니다.Values of float are truncated when they are converted to any integer type.

float 또는 real에서 문자 데이터로 변환할 때 일반적으로 STR 문자열 함수를 사용하는 것이 CAST( )를 사용하는 것보다 유용합니다.When you want to convert from float or real to character data, using the STR string function is usually more useful than CAST( ). 이는 STR을 사용하면 서식을 더 많이 제어할 수 있기 때문입니다.This is because STR enables more control over formatting. 자세한 내용은 STR(Transact-SQL)함수(Transact-SQL)를 참조하세요.For more information, see STR (Transact-SQL) and Functions (Transact-SQL).

SQL Server 2016(13.x)SQL Server 2016 (13.x) 이전에는 float 값을 decimal 또는 numeric로 변환하는 경우 정밀도 값이 17자리로 제한됩니다.Prior to SQL Server 2016(13.x)SQL Server 2016 (13.x), conversion of float values to decimal or numeric is restricted to values of precision 17 digits only. 5E-18(과학적 표기법 5E-18 또는 10진 표기법 0.0000000000000000050000000000000005를 사용하여 설정된 경우) 미만의 float 값은 0으로 버림됩니다.Any float value less than 5E-18 (when set using either the scientific notation of 5E-18 or the decimal notation of 0.0000000000000000050000000000000005) rounds down to 0. SQL Server 2016(13.x)SQL Server 2016 (13.x)부터 더 이상 제한되지 않습니다.This is no longer a restriction as of SQL Server 2016(13.x)SQL Server 2016 (13.x).

관련 항목:See also

데이터 형식 변환(데이터베이스 엔진)Data Type Conversion (Database Engine)
데이터 형식(Transact-SQL)Data Types (Transact-SQL)
DECLARE @local_variable&#40;Transact-SQL&#41;DECLARE @local_variable (Transact-SQL)
SET @local_variable&#40;Transact-SQL&#41;SET @local_variable (Transact-SQL)