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
Definiert im Header <math.h>
float ceilf ( float arg ) ;
(1) (seit C99)
double ceil ( double arg ) ;
(2)
long double ceill ( long double arg ) ;
(3) (seit C99)
Definiert im Header <tgmath.h>
#define ceil( arg )
(4) (seit C99)
1-3) Berechnet den kleinsten ganzzahligen Wert, der nicht kleiner als arg ist.
4) Typgenerisches Makro: Wenn arg den Typ long double hat, wird ceill aufgerufen. Andernfalls, wenn arg einen Ganzzahltyp oder den Typ double hat, wird ceil aufgerufen. Andernfalls wird ceilf aufgerufen.

Inhaltsverzeichnis

Parameter

arg - Gleitkommawert

Rückgabewert

Wenn keine Fehler auftreten, wird der kleinste ganzzahlige Wert zurückgegeben, der nicht kleiner als arg ist, also ⌈arg⌉ .

Rückgabewert
math-ceil.svg
Argument

Fehlerbehandlung

Fehler werden gemeldet, wie in math_errhandling spezifiziert.

Wenn die Implementierung IEEE-Gleitkommaarithmetik (IEC 60559) unterstützt:

  • Der aktuelle Rundungsmodus hat keine Auswirkung.
  • Wenn arg ±∞ ist, wird es unverändert zurückgegeben.
  • Wenn arg ±0 ist, wird es unverändert zurückgegeben.
  • Wenn arg NaN ist, wird NaN zurückgegeben.

Hinweise

FE_INEXACT kann (muss aber nicht) ausgelöst werden, wenn ein nicht-ganzzahliger endlicher Wert gerundet wird.

Die größten darstellbaren Gleitkommawerte sind exakte Ganzzahlen in allen standardmäßigen Gleitkommaformaten, daher überläuft diese Funktion niemals allein; jedoch kann das Ergebnis jeden Ganzzahltyp (einschließlich intmax_t ) überlaufen, wenn es in einer Ganzzahlvariablen gespeichert wird.

Diese Funktion (für double Argument) verhält sich so, als ob (mit Ausnahme der Freiheit, FE_INEXACT nicht auszulösen) implementiert durch

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

Beispiel

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

Mögliche Ausgabe:

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

Referenzen

  • C23-Standard (ISO/IEC 9899:2024):
  • 7.12.9.1 Die ceil-Funktionen (S.: TBD)
  • 7.25 Typgenerische Mathematik <tgmath.h> (S.: TBD)
  • F.10.6.1 Die ceil-Funktionen (S.: TBD)
  • C17-Standard (ISO/IEC 9899:2018):
  • 7.12.9.1 Die ceil-Funktionen (S.: TBD)
  • 7.25 Typgenerische Mathematik <tgmath.h> (S.: TBD)
  • F.10.6.1 Die ceil-Funktionen (S.: TBD)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.12.9.1 Die ceil-Funktionen (S. 251)
  • 7.25 Typgenerische Mathematik <tgmath.h> (S. 373-375)
  • F.10.6.1 Die ceil-Funktionen (S. 526)
  • C99-Standard (ISO/IEC 9899:1999):
  • 7.12.9.1 Die ceil-Funktionen (S. 231-232)
  • 7.22 Typgenerische Mathematik <tgmath.h> (S. 335-337)
  • F.9.6.1 Die ceil-Funktionen (S. 462-463)
  • C89/C90 Standard (ISO/IEC 9899:1990):
  • 4.5.6.1 Die ceil-Funktion

Siehe auch

berechnet die größte Ganzzahl, die nicht größer als der gegebene Wert ist
(Funktion)
(C99) (C99) (C99)
rundet zur nächsten Ganzzahl, die nicht größer im Betrag als der gegebene Wert ist
(Funktion)
(C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99)
rundet zur nächsten Ganzzahl, bei Mittelwerten weg von Null
(Funktion)
rundet zu einer Ganzzahl unter Verwendung des aktuellen Rundungsmodus
(Funktion)
(C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99)
rundet zu einer Ganzzahl unter Verwendung des aktuellen Rundungsmodus mit
Ausnahme, wenn das Ergebnis abweicht
(Funktion)