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 (стр.: TBD)
  • 7.25 Обобщенная математика <tgmath.h> (стр.: TBD)
  • F.10.6.1 Функции ceil (стр.: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
  • 7.12.9.1 Функции ceil (стр.: TBD)
  • 7.25 Обобщенная математика <tgmath.h> (стр.: TBD)
  • F.10.6.1 Функции ceil (стр.: TBD)
  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.12.9.1 Функции ceil (стр. 251)
  • 7.25 Обобщенная математика <tgmath.h> (стр. 373-375)
  • F.10.6.1 Функции ceil (стр. 526)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 7.12.9.1 Функции ceil (стр. 231-232)
  • 7.22 Обобщенная математика <tgmath.h> (стр. 335-337)
  • F.9.6.1 Функции ceil (стр. 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)
округляет до ближайшего целого числа, от нуля в случае половинных значений
(функция)
округляет до целого числа, используя текущий режим округления
(функция)
(C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99)
округляет до целого числа, используя текущий режим округления с
исключением, если результат отличается
(функция)