ceil, ceilf, ceill - cppreference.com (original) (raw)

Defined in header <math.h>
float ceilf( float arg ); (1) (since C99)
double ceil( double arg ); (2)
long double ceill( long double arg ); (3) (since C99)
Defined in header <tgmath.h>
#define ceil( arg ) (4) (since C99)

1-3) Computes the smallest integer value not less than arg.

  1. Type-generic macro: If arg has type long double, ceill is called. Otherwise, if arg has integer type or the type double, ceil is called. Otherwise, ceilf is called.

Contents

[edit] Parameters

arg - floating-point value

[edit] Return value

If no errors occur, the smallest integer value not less than arg, that is ⌈arg⌉, is returned.

Return value

math-ceil.svg

Argument

[edit] Error handling

Errors are reported as specified in math_errhandling.

If the implementation supports IEEE floating-point arithmetic (IEC 60559):

[edit] Notes

FE_INEXACT may be (but isn't required to be) raised when rounding a non-integer finite value.

The largest representable floating-point values are exact integers in all standard floating-point formats, so this function never overflows on its own; however the result may overflow any integer type (including intmax_t), when stored in an integer variable.

This function (for double argument) behaves as if (except for the freedom to not raise FE_INEXACT) implemented by

#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); // or nearbyint fesetround(save_round); return result; }

[edit] Example

#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)); }

Possible output:

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

[edit] References

[edit] See also

floorfloorffloorl(C99)(C99) computes largest integer not greater than the given value (function) [edit]
trunctruncftruncl(C99)(C99)(C99) rounds to nearest integer not greater in magnitude than the given value (function) [edit]
roundroundfroundllroundlroundflroundlllroundllroundfllroundl(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99) rounds to nearest integer, rounding away from zero in halfway cases (function) [edit]
nearbyintnearbyintfnearbyintl(C99)(C99)(C99) rounds to an integer using current rounding mode (function) [edit]
rintrintfrintllrintlrintflrintlllrintllrintfllrintl(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99) rounds to an integer using current rounding mode with exception if the result differs (function) [edit]
C++ documentation for ceil