MySQL ROUND() 함수로 소수점 자릿수 지정하기
MySQL에서 FLOAT 타입의 컬럼을 조회할 때 원하는 소수점 자릿수로 반올림하여 출력하고 싶다면 ROUND() 함수를 사용하면 됩니다.
기본 문법
SELECT ROUND(컬럼명, 자릿수) FROM 테이블명;
두 번째 인자인 정숫값에 원하는 소수점 자릿수를 지정하면, 해당 자릿수까지 반올림된 결과가 반환됩니다.
예제 테이블 생성
개념을 이해하기 위해 간단한 테이블을 먼저 만들어 보겠습니다. 아래 쿼리로 테이블을 생성합니다.
mysql> create table givenPrecisionDemo -> ( -> Amount float -> ); Query OK, 0 rows affected (0.61 sec)
샘플 데이터 삽입
INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.
mysql> insert into givenPrecisionDemo(Amount) values(45.678); Query OK, 1 row affected (0.12 sec) mysql> insert into givenPrecisionDemo(Amount) values(123.456); Query OK, 1 row affected (0.15 sec) mysql> insert into givenPrecisionDemo(Amount) values(245.890); Query OK, 1 row affected (0.20 sec) mysql> insert into givenPrecisionDemo(Amount) values(980.678); Query OK, 1 row affected (0.19 sec)
저장된 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from givenPrecisionDemo;
실행 결과는 다음과 같습니다.
+---------+ | Amount | +---------+ | 45.678 | | 123.456 | | 245.89 | | 980.678 | +---------+ 4 rows in set (0.00 sec)
지정한 자릿수로 FLOAT 값 조회하기
이제 ROUND() 함수를 사용해 소수점 둘째 자리까지 반올림하여 Amount 값을 조회해 보겠습니다.
mysql> SELECT ROUND(Amount,2) from givenPrecisionDemo;
실행 결과는 다음과 같습니다.
+-----------------+ | ROUND(Amount,2) | +-----------------+ | 45.68 | | 123.46 | | 245.89 | | 980.68 | +-----------------+ 4 rows in set (0.00 sec)
참고 사항
ROUND() 함수는 두 번째 인자를 생략하면 소수점 첫째 자리에서 반올림하여 정수를 반환합니다. 또한 음수를 지정하면 소수점 왼쪽(정수부) 기준으로 반올림할 수도 있습니다. 예를 들어 ROUND(Amount, -1)은 일의 자리에서 반올림한 결과를 반환합니다. 금액처럼 정확한 소수점 계산이 중요한 데이터라면 DECIMAL 타입 사용을 고려하는 것도 좋은 방법입니다.