MySQL에서 실수(Float) 저장하기
MySQL에서 실수(부동 소수점 숫자)를 정확하게 저장하려면 DECIMAL 자료형을 사용하는 것이 좋습니다. FLOAT나 DOUBLE은 이진 부동 소수점 방식으로 값을 저장하기 때문에 미세한 오차가 발생할 수 있지만, DECIMAL은 십진수 값을 그대로 저장하므로 금액처럼 정밀도가 중요한 데이터에 적합합니다.
1. 테이블 생성
먼저 DECIMAL 타입의 컬럼을 가진 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
(
Price DECIMAL(10,2)
);
Query OK, 0 rows affected (1.59 sec)
여기서 DECIMAL(10,2)는 전체 10자리 숫자를 저장할 수 있으며, 그중 소수점 이하 2자리를 포함한다는 의미입니다.
2. 데이터 삽입
INSERT 명령어를 사용하여 테이블에 레코드를 삽입합니다.
mysql> insert into DemoTable values(874674.50);
Query OK, 1 row affected (0.39 sec)
mysql> insert into DemoTable values(9948984.20);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values(12345678.99);
Query OK, 1 row affected (0.18 sec)
3. 데이터 조회
SELECT 문을 사용하여 테이블의 모든 레코드를 확인합니다.
mysql> select *from DemoTable;
출력 결과
+-------------+
| Price |
+-------------+
| 874674.50 |
| 9948984.20 |
| 12345678.99 |
+-------------+
3 rows in set (0.00 sec)
출력 결과에서 확인할 수 있듯이, DECIMAL 타입은 소수점 이하 두 자리까지 입력된 값을 정확하게 그대로 저장합니다. 이처럼 MySQL에서 실수를 오차 없이 저장해야 한다면 DECIMAL 자료형 사용을 권장합니다.