CEIL(3) | Linux Programmer's Manual | CEIL(3) |

# NAME

ceil, ceilf, ceill - ceiling function: smallest integral value not less than argument# SYNOPSIS

**#include**

<math.h>

<math.h>

**double ceil(double**

*x*

**);**

**float ceilf(float**

*x*

**);**

**long double ceill(long double**

*x*

**);**

*-lm*.

Feature Test Macro Requirements for glibc (see

**feature_test_macros**(7)):

**ceilf**(),

**ceill**():

_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;
or

*cc -std=c99*# DESCRIPTION

These functions return the smallest integral value that is not less than*x*.

*ceil(0.5)*is 1.0, and

*ceil(-0.5)*is 0.0.

# RETURN VALUE

These functions return the ceiling of*x*.

*x*is integral, +0, -0, NaN, or infinite,

*x*itself is returned.

# ERRORS

No errors occur. POSIX.1-2001 documents a range error for overflows, but see NOTES.# ATTRIBUTES

## Multithreading (see pthreads(7))

The**ceil**(),

**ceilf**(), and

**ceill**() functions are thread-safe.

# CONFORMING TO

C99, POSIX.1-2001. The variant returning*double*also conforms to SVr4, 4.3BSD, C89.

# NOTES

SUSv2 and POSIX.1-2001 contain text about overflow (which might set*errno*to

**ERANGE**, or raise an

**FE_OVERFLOW**exception). In practice, the result cannot overflow on any current machine, so this error-handling stuff is just nonsense. (More precisely, overflow can happen only when the maximum value of the exponent is smaller than the number of mantissa bits. For the IEEE-754 standard 32-bit and 64-bit floating-point numbers the maximum value of the exponent is 128 (respectively, 1024), and the number of mantissa bits is 24 (respectively, 53).)

*int*,

*long*, etc.). To avoid an overflow, which will produce undefined results, an application should perform a range check on the returned value before assigning it to an integer type.

# SEE ALSO

**floor**(3),

**lrint**(3),

**nearbyint**(3),

**rint**(3),

**round**(3),

**trunc**(3)

# COLOPHON

This page is part of release 3.53 of the Linux*man-pages*project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.

2013-06-21 |