[TIL] 숫자함수 ROUND, FLOOR, CEIL and TRUNCATE

오수희·2020년 9월 6일
3

SQL

목록 보기
8/10
post-thumbnail

MySQL을 배우면서 반올림과 올림, 내림에 관해 익혔다. 좀 더 살펴보니 제거, 절삭과 같은 것도 가능하다. 아래서 확인해보자.

ROUND: 반올림

지정하는 소숫점 자리로 반올림한다.

SELECT ROUND(135.375, 2); -- 135.38

FLOOR: 버림 (to integer)

가장 가까운 '정수'로 버림하여 반환한다.

SELECT FLOOR(135.375); -- 135

CEIL 또는 CEILING: 올림 (to integer)

가장 가까운 '정수'로 올림하여 반환한다.

SELECT CEIL(135.375); -- 136
SELECT CEILING(135.375); -- 136

TRUNCATE: 제거

학습 중 TRUNCATE라는 것을 발견했다. 이것은 사실상 위의 모든 속성과 다르다고 할 수 있는데, 그냥 n째 자리까지 남기고 아예 제거를 해버리기 때문이다. 그래서 결과는 아래와 같다.

SELECT TRUNCATE(135.375, 2); --135.37

혹시라도 ROUND와 TRUNCATE를 혼동하면 티 안나는 오류를 맛볼 수 있다. 그 맛은... 쓸 것 같다. 그러니 문제풀이를 한다면 문제를 잘 읽고, 분석을 하는 경우에도 정확하게 원하는 값을 정해두고 시작하자.

약간의 TMI

  • 검색해보니 사실 TRUNCATE는 ROUND와 혼동되기보다 table과 같이 쓰여 DELETE나 DROP이라는 함수와 혼동되는 경향이 있는 듯 함
  • truncate는 동사로 1. 끝을 자르다 2. 꼭대기를 자르다 3. 일부를 생략하여 줄이다 라는 뜻을 가지고 있음
  • TRUNC(날짜와 함께 쓰이는 듯..?)와 TRUNCATE 함수는 서로 다른 역할을 하는 것으로 추정되나, 위 영어 뜻을 고려하면 비슷한 맥락에서 나온듯 함
profile
프로덕트 마케터인데 이제 데이터를 좀 곁들인.

0개의 댓글