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

MySQL에서 소수점 이하를 버리고 정수로 내림하는 방법 – FLOOR() 함수 완벽 가이드

MySQL FLOOR() 함수란?

MySQL에서 숫자를 가장 가까운 정수로 내림(버림) 처리하려면 FLOOR() 함수를 사용하면 됩니다. FLOOR()는 인자로 전달된 값보다 크지 않은 최대 정수를 반환하며, 소수점 이하 값을 무조건 잘라내고 싶을 때 매우 유용합니다.

기본 문법

SELECT FLOOR(yourColumnName) FROM yourTableName;

이제 실제 예제를 통해 FLOOR() 함수의 동작 방식을 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 실습에 사용할 테이블을 생성합니다. Price라는 float 타입의 컬럼을 가진 테이블입니다.

mysql> create table FloorDemo
   -> (
   -> Price float
   -> );
Query OK, 0 rows affected (0.57 sec)

2단계: 데이터 삽입

Price 컬럼에 소수점을 포함한 레코드를 삽입합니다.

mysql> insert into FloorDemo values(5.75);
Query OK, 1 row affected (0.21 sec)
mysql> insert into FloorDemo values(5.23);
Query OK, 1 row affected (0.31 sec)
mysql> insert into FloorDemo values(5.50);
Query OK, 1 row affected (0.12 sec)

3단계: 저장된 데이터 확인

SELECT 문을 사용하여 테이블에 저장된 레코드를 조회해 보겠습니다.

mysql> select *from FloorDemo;

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

+-------+
| Price |
+-------+
| 5.75  |
| 5.23  |
| 5.5   |
+-------+
3 rows in set (0.00 sec)

총 3개의 레코드가 저장되어 있으며, 각 값의 소수점 이하를 버리고 정수 부분만 얻고자 합니다.

4단계: FLOOR() 함수 적용

앞서 설명한 대로 FLOOR() 함수를 적용하여 각 값을 정수로 내림 처리합니다.

mysql> SELECT FLOOR(Price) from FloorDemo;

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

+--------------+
| FLOOR(Price) |
+--------------+
|            5 |
|            5 |
|            5 |
+--------------+
3 rows in set (0.03 sec)

FLOOR() 함수의 특징 정리

  • 5.75 → 5: 소수점 이하가 .75여도 무조건 내림됩니다.
  • 5.23 → 5: 소수점 이하가 작아도 마찬가지로 내림됩니다.
  • 5.50 → 5: 반올림이라면 6이 되겠지만, FLOOR()는 항상 아래 방향으로 내립니다.

즉, FLOOR() 함수는 값의 크기와 관계없이 항상 작거나 같은 가장 큰 정수를 반환한다는 점을 기억하세요. 참고로 음수에 적용할 경우에도 내림 방향으로 동작하기 때문에, 예를 들어 FLOOR(-5.23)은 -6을 반환합니다. 단순히 소수점을 자르고 싶다면 TRUNCATE() 함수를, 반올림이 필요하다면 ROUND() 함수를 사용하는 것이 적합합니다.