MySQL에서 부동 소수점(FLOAT) 타입으로 저장된 데이터를 특정 소수 자릿수로 반올림하려면 ROUND() 함수를 사용하면 됩니다. 이 함수는 원본 열의 값은 그대로 유지한 채, 반올림된 결과를 별도의 새 열(Alias)로 출력할 수 있어 매우 유용합니다.
1. 테이블 생성하기
먼저 실습에 사용할 테이블을 생성해 보겠습니다. Value라는 이름의 FLOAT 타입 열을 하나 가진 테이블입니다.
mysql> create table DemoTable
(
Value float
);
Query OK, 0 rows affected (0.95 sec)2. 샘플 데이터 삽입하기
INSERT 명령을 사용하여 소수점 아래 여러 자릿수를 가진 레코드들을 삽입합니다.
mysql> insert into DemoTable values(12.4567); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(124.7884); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values(45.64643); Query OK, 1 row affected (0.46 sec)
3. 저장된 데이터 확인하기
SELECT 문을 사용하여 테이블에 저장된 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable;
위 쿼리는 다음과 같은 출력 결과를 생성합니다.
+---------+ | Value | +---------+ | 12.4567 | | 124.788 | | 45.6464 | +---------+ 3 rows in set (0.00 sec)
4. ROUND() 함수로 반올림 결과를 새 열에 표시하기
FLOAT 값을 소수점 둘째 자리까지 반올림하고, 그 결과를 RoundValue라는 새 열에 표시하는 쿼리는 다음과 같습니다.
mysql> select Value,ROUND(Value,2) AS RoundValue from DemoTable;
실행 결과는 다음과 같습니다.
+---------+------------+ | Value | RoundValue | +---------+------------+ | 12.4567 | 12.46 | | 124.788 | 124.79 | | 45.6464 | 45.65 | +---------+------------+ 3 rows in set (0.00 sec)
ROUND() 함수의 동작 방식
ROUND(Value, 2) 구문에서 두 번째 인자인 '2'는 반올림할 소수점 자릿수를 의미합니다. 위 결과를 보면 12.4567은 12.46으로, 124.7884는 124.79로, 45.64643은 45.65로 각각 소수점 둘째 자리까지 정확히 반올림된 것을 확인할 수 있습니다.
여기서 중요한 점은 AS 키워드를 사용해 별칭(Alias)을 지정했기 때문에 원본 Value 열의 값은 변경되지 않고, 반올림된 값이 별도의 열로 함께 출력된다는 것입니다. 만약 음수를 지정하면(-1, -2 등) 소수점이 아닌 정수 부분을 기준으로 반올림할 수도 있습니다. 예를 들어 ROUND(124.788, -1)은 120을 반환합니다.