Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL ROUND() 함수로 테이블의 숫자 데이터 반올림하기

MySQL에서 숫자 반올림하기

MySQL에서 숫자를 반올림하려면 ROUND() 함수를 사용하면 됩니다. 이 글에서는 테이블 생성부터 실제 반올림 쿼리 실행까지 전체 과정을 예제와 함께 살펴보겠습니다.

1. 테이블 생성

먼저 DECIMAL 타입의 컬럼을 가진 테이블을 생성합니다.

mysql> create table DemoTable
    -> (
    -> Amount DECIMAL(10,4)
    -> );
Query OK, 0 rows affected (1.18 sec)

DECIMAL(10,4)은 최대 10자리 숫자 중 소수점 이하 4자리까지 저장할 수 있음을 의미합니다.

2. 샘플 데이터 삽입

INSERT 명령을 사용해 테이블에 레코드를 추가합니다.

mysql> insert into DemoTable values(100.578);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(1000.458);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values(980.89);
Query OK, 1 row affected (0.13 sec)

3. 저장된 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select * from DemoTable;

실행 결과는 다음과 같습니다.

+-----------+
| Amount    |
+-----------+
| 100.5780  |
| 1000.4580 |
| 980.8900  |
+-----------+
3 rows in set (0.00 sec)

4. ROUND() 함수로 값 반올림

이제 UPDATE 문과 함께 ROUND() 함수를 사용해 모든 값을 정수로 반올림합니다.

mysql> update DemoTable set Amount=round(Amount);
Query OK, 3 rows affected (0.12 sec)
Rows matched: 3 Changed: 3 Warnings: 0

변경된 결과를 다시 한번 확인해 보겠습니다.

mysql> select * from DemoTable;

모든 값이 정수로 반올림되어 저장된 것을 볼 수 있습니다.

+-----------+
| Amount    |
+-----------+
| 101.0000  |
| 1000.0000 |
| 981.0000  |
+-----------+
3 rows in set (0.00 sec)

ROUND() 함수의 동작 방식

MySQL의 ROUND() 함수는 두 가지 형태로 사용할 수 있습니다.

  • ROUND(X): X를 가장 가까운 정수로 반올림합니다. 위 예제처럼 인수를 하나만 전달하면 소수점 이하가 모두 제거됩니다.
  • ROUND(X, D): X를 소수점 D번째 자리까지 반올림합니다. 예를 들어 ROUND(100.578, 2)는 100.58을 반환합니다.

참고로 .5인 경우 MySQL은 '반올림 절반은 짝수로(round half away from zero)' 방식이 아닌, 일반적인 사사오입 규칙에 따라 절대값 기준으로 멀어지는 방향으로 반올림합니다. 즉, ROUND(2.5)는 3, ROUND(-2.5)는 -3을 반환합니다.