728x90
반응형
개발 언어에서는 실수형 데이터를 float 타입으로 선언하곤 합니다. 이 때문에 DB를 구성할 때도 실수형 데이터가 저장될 열을 FLOAT 타입으로 선언하게 되는데요.
ALTER TABLE 테이블이름 ADD COLUMN 컬럼이름 FLOAT;
이런식으로 선언 시 데이터를 저장한 다음 평균을 내거나 합계를 낼 때 조금씩 차이가 나는 현상이 발생하고,
소수점이 조금 긴 데이터를 저장 시 소수점 몇자리부터 짤리는 현상을 경험하여 알게 되었습니다.
이유는 바로 FLOAT 타입이 근사 값을 저장하기 때문이였습니다. 이 부분은 FLOAT, REAL, DOUBLE PRECISION 모두 동일하였습니다. msdn에서도 다음과 같이 설명하고 있는데요.
부동 소수점 데이터는 근사 값이므로 해당 데이터 형식 범위에 있는 모든 값을 정확하게 표현할 수는 없습니다.
– 출처 : msdn
그래서 실수(float)형 데이터를 DB에 저장할 때는 해당 열을 FLOAT 타입이 DECIMAL를 써 주면 됩니다.
정확한 수치를 저장(소수점이 들어간 실수를 저장하려면 DECIMAL 사용) 하지만 FLOAT와 DOUBLE은 근사치의 숫자를 저장한다는 차이가 있어요. 대신 FLOAT와 DOUBLE은 상당히 큰 숫자를 저장할 수 있습니다.
728x90
반응형
'프로그래밍(Basic) > 이론' 카테고리의 다른 글
[바미] 동적 계획법(Dynamic Programming). (0) | 2022.08.09 |
---|---|
[바미] 프로세스와 스레드 (Process vs Tread) (0) | 2022.07.26 |
[바미] MVC, MVP, MVVM 패턴에 대해 알아봅시다. (0) | 2022.04.09 |
[바미] 오토마타 프로그래밍의 중요성 (0) | 2022.01.27 |
[바미] 좋은 코드를 만들기 위한 노력. (0) | 2022.01.11 |