11.2.3 부동 소수점 형 (대략적인 값) - FLOAT, DOUBLE
FLOAT
및 DOUBLE
타입은 근사치 값 데이터 값을 나타냅니다. MySQL은 단 정밀도 값은 4 바이트를 배정 밀도 값은 8 바이트를 사용합니다.
FLOAT
내용은 SQL 표준에서는 옵션에서 키워드 FLOAT
에 계속 괄호 안의 비트 (지수의 범위가 아닌) 정도를 지정할 수 있습니다. MySQL은 또한이 옵션의 정밀도 지정도 지원하지만, 그 정밀도 값은 스토리지 크기를 결정하는 데에만 사용됩니다. 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
을 삽입하면 근사 결과는 999.0001
입니다.
부동 소수점 값은 대략적인 값이며 정확한 숫자로 저장되지 않기 때문에, 비교 값을 정확한 숫자로 취급하려고하면 문제가 발생할 수 있습니다. 이들은 또한 플랫폼 또는 구현 종속성에 따릅니다. 자세한 내용은 섹션 B.5.5.8 "부동 소수점 값 문제" 를 참조하십시오.
이식성을 최대화하기 위해 요약 값 데이터 값의 저장을 필요로하는 코드는 정밀도 또는 자릿수가 지정되지 않은 FLOAT
또는 DOUBLE PRECISION
을 사용해야합니다.