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
Definido en el encabezado <math.h>
float ceilf ( float arg ) ;
(1) (desde C99)
double ceil ( double arg ) ;
(2)
long double ceill ( long double arg ) ;
(3) (desde C99)
Definido en el encabezado <tgmath.h>
#define ceil( arg )
(4) (desde C99)
1-3) Calcula el valor entero más pequeño no menor que arg .
4) Macro genérico de tipos: Si arg tiene tipo long double , ceill es llamado. De lo contrario, si arg tiene tipo entero o el tipo double , ceil es llamado. De lo contrario, ceilf es llamado.

Contenidos

Parámetros

arg - valor de punto flotante

Valor de retorno

Si no ocurren errores, se devuelve el valor entero más pequeño no menor que arg , es decir ⌈arg⌉ .

Valor de retorno
math-ceil.svg
Argumento

Manejo de errores

Los errores se reportan como se especifica en math_errhandling .

Si la implementación soporta aritmética de punto flotante IEEE (IEC 60559):

  • El modo de redondeo actual no tiene efecto .
  • Si arg es ±∞, se devuelve sin modificaciones.
  • Si arg es ±0, se devuelve sin modificaciones.
  • Si arg es NaN, se devuelve NaN.

Notas

FE_INEXACT puede (pero no está obligado a) activarse al redondear un valor finito no entero.

Los valores de punto flotante más grandes representables son enteros exactos en todos los formatos estándar de punto flotante, por lo que esta función nunca desborda por sí misma; sin embargo, el resultado puede desbordar cualquier tipo entero (incluyendo intmax_t ), cuando se almacena en una variable entera.

Esta función (para double argumento) se comporta como si (excepto por la libertad de no generar FE_INEXACT ) implementada por

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

Ejemplo

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

Salida posible:

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

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.12.9.1 Las funciones ceil (p: TBD)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: TBD)
  • F.10.6.1 Las funciones ceil (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.12.9.1 Las funciones ceil (p: TBD)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: TBD)
  • F.10.6.1 Las funciones ceil (p: TBD)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.12.9.1 Las funciones ceil (p: 251)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: 373-375)
  • F.10.6.1 Las funciones ceil (p: 526)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.12.9.1 Las funciones ceil (p: 231-232)
  • 7.22 Matemáticas genéricas de tipo <tgmath.h> (p: 335-337)
  • F.9.6.1 Las funciones ceil (p: 462-463)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 4.5.6.1 La función ceil

Véase también

calcula el entero más grande no mayor que el valor dado
(función)
(C99) (C99) (C99)
redondea al entero más cercano no mayor en magnitud que el valor dado
(función)
(C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99)
redondea al entero más cercano, redondeando alejándose de cero en casos intermedios
(función)
redondea a un entero usando el modo de redondeo actual
(función)
(C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99)
redondea a un entero usando el modo de redondeo actual con
excepción si el resultado difiere
(función)