인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

공유진님의 프로필 이미지

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 기초 SQL

ORDER BY 해커랭크 문제풀이 3 + 소수점처리 ROUND() 함수

CEIL, FLOOR 함수 질문

해결된 질문

작성

·

87

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

CEIL함수와 FLOOR함수 또한 소수점에서도 올림과 내림이 가능한가요?

ex) SELECT CEIL(5.55, 2)

=> 5.56

이런식으로 가능한지 궁금하네요

해커랭크하고 w3school 에서는 에러나더라구요

답변 2

0

윤선미님의 프로필 이미지
윤선미
지식공유자

안녕하세요 공유진님. 답변이 늦어져 죄송합니다. MySQL의 CEIL() 함수에는 특정자릿수로 올림하는 기능은 없고, 아래 stackoverflow 답변을 참고해보시면 좋을 것 같습니다.

https://stackoverflow.com/questions/16012081/how-to-ceil-decimal-point

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 공유진님.

CEIL 함수와 FLOOR 함수에 대해 궁금하신 점이 있는 것 같네요. 이 함수들은 일반적으로 소수점 이하의 값을 처리하는 방식이 독특합니다.

CEIL (올림 함수): 이 함수는 주어진 수보다 크거나 같은 가장 작은 정수를 반환합니다. 소수점 두 번째 자리에서 올림을 하는 기능은 기본적으로 제공되지 않습니다. 예를 들어 CEIL(5.55)는 6이 됩니다.

FLOOR (내림 함수): 이 함수는 주어진 수보다 작거나 같은 가장 큰 정수를 반환합니다. 마찬가지로, 소수점 자리수를 지정하여 작동하는 것이 아니라 정수 부분에서의 내림만 가능합니다. FLOOR(5.55)는 5가 됩니다.

SQL의 기본 CEIL과 FLOOR 함수에서는 소수점을 처리하는 방식이 이러한 제한이 있습니다. 특정 자리수에서 올림 또는 내림을 원하시면, 10의 배수로 곱하고 나누어서 조정하는 방법을 사용할 수 있습니다.

SELECT CEIL(5.55 * 100) / 100; -- 결과: 5.56
SELECT FLOOR(5.55 * 100) / 100; -- 결과: 5.55

이렇게 하면 소수점 두 번째 자리에서 올림이나 내림을 할 수 있습니다.

유사한 질문과 해결 방법에 대해서는 아직 해당 주제를 정확히 다루는 답변이 없습니다. 다만, 다른 함수 사용법에 대한 질문이 있다면 ROUND 함수 소수점에서 왜 0이 포함되어서 나올까요를 참조하실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.