Loading...
MySQL 9.5 Reference Manual 9.5의 13.1.4 Floating-Point Types (Approximate Value) - FLOAT, DOUBLE의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
FLOAT와 DOUBLE 타입은 근사 숫자 데이터 값을 나타냅니다. MySQL은 단정도 값에는 4바이트를, 배정도 값에는 8바이트를 사용합니다.
FLOAT의 경우, SQL 표준은 키워드 FLOAT 뒤에 괄호로 묶인 비트 단위의 정밀도(지수 범위가 아님)를 선택적으로 지정하는 것을 허용합니다. 즉, FLOAT(p)입니다. MySQL 역시 이 선택적 정밀도 지정을 지원하지만, FLOAT(p)에서 정밀도 값은 저장 공간 크기를 결정하는 데만 사용됩니다. 정밀도가 0에서 23 사이이면 4바이트 단정도 FLOAT 컬럼이 됩니다. 정밀도가 24에서 53 사이이면 8바이트 배정도 DOUBLE 컬럼이 됩니다.
MySQL은 비표준 구문을 허용합니다:
FLOAT(M,D) 또는
REAL(M,D) 또는
DOUBLE PRECISION(M,D).
여기서 (M,D)는 값을 총 _M_자리까지 저장할 수 있고, 그중 _D_자리는 소수점 이하일 수 있음을 의미합니다. 예를 들어, FLOAT(7,4)로 정의된 컬럼은 -999.9999로 표시됩니다. MySQL은 값을 저장할 때 반올림을 수행하므로, FLOAT(7,4) 컬럼에 999.00009를 insert하면 근사 결과는 999.0001입니다.
FLOAT(M,D)와
DOUBLE(M,D)는 비표준 MySQL 확장이며, 더 이상 사용되지 않습니다(deprecated). 이러한 변형에 대한 지원은 향후 MySQL 버전에서 제거될 것으로 예상해야 합니다.
부동 소수점 값은 근사치이고 정확한 값으로 저장되지 않기 때문에, 이를 비교에서 정확한 값으로 취급하려는 시도는 문제를 일으킬 수 있습니다. 또한 플랫폼 또는 구현에 따라 달라집니다. 자세한 내용은 Section B.3.4.8, “Problems with Floating-Point Values”를 참조하십시오.
최대 이식성을 위해, 근사 숫자 데이터 값의 저장이 필요한 코드는 정밀도나 자릿수 지정 없이 FLOAT 또는 DOUBLE PRECISION을 사용해야 합니다.
13.1.3 Fixed-Point Types (Exact Value) - DECIMAL, NUMERIC
13.1.5 Bit-Value Type - BIT