Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ ceil과 floor 함수 완벽 정리: 올림과 내림의 모든 것

C++에서 실수를 다룰 때 소수점 이하를 올림하거나 내림해야 하는 경우가 자주 발생합니다. 이때 사용하는 것이 바로 cmath 헤더 파일에 선언된 ceil 함수floor 함수입니다. 이 글에서는 두 함수의 개념, 문법, 그리고 실제 예제 코드까지 자세히 살펴보겠습니다.


ceil 함수란?

ceil 함수는 인자로 전달된 값보다 크거나 같은 정수 중에서 가장 작은 값, 즉 '올림' 결과를 반환합니다. 예를 들어 1234.25가 주어지면, 이보다 크거나 같은 가장 작은 정수인 1235를 반환합니다.

이 함수는 C++ 표준 라이브러리의 <cmath> 헤더 파일에 선언되어 있으며, 계산할 값을 하나만 인자로 받습니다. 이때 변수의 자료형은 반드시 double, float, long double 중 하나여야 합니다.

ceil 함수 문법

double ceil(double x);
float ceil(float x);

ceil 함수 예제

다음은 C++에서 ceil 함수를 사용하는 예제입니다.

#include <iostream>
#include <cmath>
using namespace std;
int main() {
    float var = 1234.25;
    float res;
    res = ceil(var);
    cout << "Ceil value of " << var << " = " << res << endl;
    return 0;
}

실행 결과

Ceil value of 1234.25 = 1235

실행 결과를 보면 1234.25의 천장(ceil) 값으로 1235가 출력된 것을 확인할 수 있습니다. 소수 부분이 아무리 작아도 무조건 위쪽 정수로 올림 처리됩니다.


floor 함수란?

floor 함수는 ceil 함수와 반대로, 인자로 전달된 값보다 작거나 같은 정수 중에서 가장 큰 값, 즉 '내림' 결과를 반환합니다. 예를 들어 211.876이 주어지면, 이보다 작거나 같은 가장 큰 정수인 211을 반환합니다.

floor 함수 역시 <cmath> 헤더 파일에 선언되어 있으며, 계산할 값을 하나만 인자로 받습니다. 변수의 자료형은 마찬가지로 double, float, long double 중 하나여야 합니다.

floor 함수 문법

double floor(double x);
float floor(float x);

floor 함수 예제

다음은 C++에서 floor 함수를 사용하는 예제입니다.

#include <iostream>
#include <cmath>
using namespace std;
int main() {
    float var = 211.876;
    float res;
    res = floor(var);
    cout << "Floor value of " << var << " = " << res << endl;
    return 0;
}

실행 결과

Floor value of 211.876 = 211

실행 결과를 보면 211.876의 바닥(floor) 값으로 211이 출력됩니다. 소수 부분과 관계없이 항상 아래쪽 정수로 내림 처리됩니다.


ceil과 floor 함수 비교 정리

구분ceil 함수floor 함수
동작 방식올림 (크거나 같은 최소 정수)내림 (작거나 같은 최대 정수)
헤더 파일<cmath>
지원 자료형double / float / long double
예: 1234.25 →12351234
예: -3.7 →-3-4

특히 음수를 다룰 때 주의해야 합니다. ceil(-3.7)은 -3(0에 가까운 방향)이 되고, floor(-3.7)은 -4(0에서 먼 방향)가 됩니다. 단순히 소수점을 버린다고 생각하면 오류가 발생할 수 있으므로, 두 함수의 동작 원리를 정확히 이해하고 사용하는 것이 중요합니다.