자바강사 낙자쌤

MySQL 숫자 함수 정리( round, truncate, ceil, floor ) 본문

DB

MySQL 숫자 함수 정리( round, truncate, ceil, floor )

낙자쌤™ 2024. 2. 18. 13:19
728x90
반응형

실수의 반올림, 버림, 올림 그리고 정수부의 절사를 위한 함수

 

ROUND(숫자 혹은 컬럼명, 반올림 할 자릿수N)

  • N +1 자릿수에서 반올림
  • 두번째 인수는 생략가능. 이때는 소수 첫번째자리에서 반올림
  • 자릿수가 음수면 정수부를 0으로 채움. 이때도 반올림 처리됨. 
SELECT ROUND(9876.3456) FROM DUAL; #결과 : 9876
SELECT ROUND(9876.3456, 1) FROM DUAL; #결과 : 9876.3
SELECT ROUND(9876.3456, 3) FROM DUAL; #결과 : 9876.346
SELECT ROUND(9876.3456, -2) FROM DUAL; #결과 : 9900

 

 

TRUNCATE(숫자 혹은 컬럼명, 잘라낼 자릿수N)

  • N 자리까지 남기고 자름
  • 두번째 인수는 필수이므로 없으면 에러발생
  • 자릿수가 음수면 정수부를 잘라낸 후 0으로 채움. 
SELECT TRUNCATE(9876.3456) FROM DUAL; #결과 : 에러발생
SELECT TRUNCATE(9876.3456, 1) FROM DUAL; #결과 : 9876.3
SELECT TRUNCATE(9876.3456, 3) FROM DUAL; #결과 : 9876.345
SELECT TRUNCATE(9876.3456, -2) FROM DUAL; #결과 : 9800

 

CEIL(숫자 혹은 컬럼명)

  • 소수 첫번째 자리에서 무조건 올림 처리
  • 두번째 인수 없음 
SELECT CEIL(9876.3456) FROM DUAL; #결과 : 9877
SELECT CEIL(9876.789) FROM DUAL; #결과 : 9877
SELECT CEIL(9876.3456, 1) FROM DUAL; #결과 : 에러발생

 

FLOOR(숫자 혹은 컬럼명)

  • 소수 첫번째 자리에서 무조건 버림 처리
  • 두번째 인수 없음
SELECT FLOOR(9876.3456) FROM DUAL; #결과 : 9876
SELECT FLOOR(9876.789) FROM DUAL; #결과 : 9876
SELECT FLOOR(9876.3456, 1) FROM DUAL; #결과 : 에러발생
728x90
반응형