Namespaces
Variants

ceil, ceilf, ceill

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
ceil
(C99) (C99) (C99)
(C99)

(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
Arguments and return values
Error handling
Fast operation indicators
헤더 파일에 정의됨 <math.h>
float ceilf ( float arg ) ;
(1) (C99부터)
double ceil ( double arg ) ;
(2)
long double ceill ( long double arg ) ;
(3) (C99부터)
헤더 파일에 정의됨 <tgmath.h>
#define ceil( arg )
(4) (C99부터)
1-3) arg 이상의 가장 작은 정수 값을 계산합니다.
4) 타입-제네릭 매크로: 만약 arg long double 타입을 가지면, ceill 가 호출됩니다. 그렇지 않고 arg 가 정수 타입이나 double 타입을 가지면, ceil 가 호출됩니다. 그 외의 경우에는 ceilf 가 호출됩니다.

목차

매개변수

arg - 부동소수점 값

반환값

오류가 발생하지 않으면, arg 보다 작지 않은 가장 작은 정수 값, 즉 ⌈arg⌉ 이 반환됩니다.

반환값
math-ceil.svg
인수

오류 처리

오류는 math_errhandling 에 명시된 대로 보고됩니다.

구현체가 IEEE 부동 소수점 연산(IEC 60559)을 지원하는 경우:

  • 현재 반올림 모드 는 영향을 미치지 않습니다.
  • 만약 arg 가 ±∞이면, 수정 없이 그대로 반환됩니다.
  • 만약 arg 가 ±0이면, 수정 없이 그대로 반환됩니다.
  • 만약 arg 가 NaN이면, NaN이 반환됩니다.

참고 사항

FE_INEXACT 는 비정수 유한 값을 반올림할 때 발생할 수 있습니다(반드시 발생해야 하는 것은 아닙니다).

표준 부동 소수점 형식에서 표현 가능한 가장 큰 부동 소수점 값들은 모두 정확한 정수이므로, 이 함수 자체는 절대 오버플로되지 않습니다. 그러나 결과를 정수 변수(예: intmax_t 를 포함한 모든 정수 타입)에 저장할 때는 오버플로가 발생할 수 있습니다.

이 함수( double 인수에 대해)는 다음과 같이 구현된 것처럼 동작합니다 ( FE_INEXACT 를 발생시키지 않을 수 있는 자유를 제외하고).

#include <fenv.h>
#include <math.h>
#pragma STDC FENV_ACCESS ON
double ceil(double x)
{
    double result;
    int save_round = fegetround();
    fesetround(FE_UPWARD);
    result = rint(x); // 또는 nearbyint
    fesetround(save_round);
    return result;
}

예제

#include <math.h>
#include <stdio.h>
int main(void)
{
    printf("ceil(+2.4) = %+.1f\n", ceil(2.4));
    printf("ceil(-2.4) = %+.1f\n", ceil(-2.4));
    printf("ceil(-0.0) = %+.1f\n", ceil(-0.0));
    printf("ceil(-Inf) = %+f\n",   ceil(-INFINITY));
}

가능한 출력:

ceil(+2.4) = +3.0
ceil(-2.4) = -2.0
ceil(-0.0) = -0.0
ceil(-Inf) = -inf

참고문헌

  • C23 표준 (ISO/IEC 9899:2024):
  • 7.12.9.1 ceil 함수들 (p: TBD)
  • 7.25 타입-제너릭 수학 <tgmath.h> (p: TBD)
  • F.10.6.1 ceil 함수들 (p: TBD)
  • C17 표준 (ISO/IEC 9899:2018):
  • 7.12.9.1 ceil 함수들 (p: TBD)
  • 7.25 타입-제네릭 수학 <tgmath.h> (p: TBD)
  • F.10.6.1 ceil 함수들 (p: TBD)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.12.9.1 ceil 함수들 (p: 251)
  • 7.25 타입-제네릭 수학 <tgmath.h> (p: 373-375)
  • F.10.6.1 ceil 함수들 (p: 526)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.12.9.1 ceil 함수들 (p: 231-232)
  • 7.22 일반 타입 수학 <tgmath.h> (p: 335-337)
  • F.9.6.1 ceil 함수들 (p: 462-463)
  • C89/C90 표준 (ISO/IEC 9899:1990):
  • 4.5.6.1 ceil 함수

참고 항목

주어진 값보다 크지 않은 가장 큰 정수를 계산합니다
(함수)
(C99) (C99) (C99)
주어진 값의 크기보다 크지 않은 가장 가까운 정수로 반올림합니다
(함수)
(C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99)
가장 가까운 정수로 반올림하며, 중간값인 경우 0에서 멀어지는 방향으로 반올림합니다
(함수)
현재 반올림 모드를 사용하여 정수로 반올림합니다
(함수)
(C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99)
현재 반올림 모드를 사용하여 정수로 반올림하며,
결과가 다른 경우 예외를 발생시킵니다
(함수)