Namespaces
Variants

std:: ceil, std:: ceilf, std:: ceill

From cppreference.net
Common mathematical functions
Nearest integer floating point operations
ceil
(C++11) (C++11) (C++11)
(C++11)
(C++11)
(C++11) (C++11) (C++11)
Floating point manipulation functions
(C++11) (C++11)
(C++11)
(C++11)
Classification and comparison
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Types
(C++11)
(C++11)
(C++11)
Macro constants
Definiert in Header <cmath>
(1)
float ceil ( float num ) ;

double ceil ( double num ) ;

long double ceil ( long double num ) ;
(bis C++23)
constexpr /*floating-point-type*/
ceil ( /*floating-point-type*/ num ) ;
(seit C++23)
float ceilf ( float num ) ;
(2) (seit C++11)
(constexpr seit C++23)
long double ceill ( long double num ) ;
(3) (seit C++11)
(constexpr seit C++23)
SIMD-Überladung (seit C++26)
Definiert in Header <simd>
template < /*math-floating-point*/ V >

constexpr /*deduced-simd-t*/ < V >

ceil ( const V & v_num ) ;
(S) (seit C++26)
Definiert in Header <cmath>
template < class Integer >
double ceil ( Integer num ) ;
(A) (constexpr seit C++23)
1-3) Berechnet den kleinsten ganzzahligen Wert, der nicht kleiner ist als num . Die Bibliothek stellt Überladungen von std::ceil für alle cv-unqualifizierten Gleitkommatypen als Typ des Parameters bereit. (since C++23)
S) Die SIMD-Überladung führt eine elementweise std::ceil auf v_num aus.
(Siehe math-floating-point und deduced-simd-t für deren Definitionen.)
(seit C++26)
A) Zusätzliche Überladungen werden für alle Ganzzahltypen bereitgestellt, die als double behandelt werden.
(since C++11)

Inhaltsverzeichnis

Parameter

num - Gleitkomma- oder Ganzzahlwert

Rückgabewert

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

Rückgabewert
math-ceil.svg
num

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 num ±∞ ist, wird es unverändert zurückgegeben.
  • Wenn num ±0 ist, wird es unverändert zurückgegeben.
  • Wenn num 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 Standard-Gleitkommaformaten, daher läuft diese Funktion niemals allein über; jedoch kann das Ergebnis jeden Ganzzahltyp (einschließlich std::intmax_t ) überlaufen, wenn es in einer Ganzzahlvariable gespeichert wird. Aus diesem Grund ist der Rückgabetyp Gleitkomma und nicht integral.

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

#include <cfenv>
#include <cmath>
#pragma STDC FENV_ACCESS ON
double ceil(double x)
{
    int save_round = std::fegetround();
    std::fesetround(FE_UPWARD);
    double result = std::rint(x); // oder std::nearbyint
    std::fesetround(save_round);
    return result;
}

Die zusätzlichen Überladungen müssen nicht exakt wie (A) bereitgestellt werden. Sie müssen lediglich sicherstellen, dass für ihr Argument num vom Ganzzahltyp std :: ceil ( num ) die gleiche Wirkung hat wie std :: ceil ( static_cast < double > ( num ) ) .

Beispiel

#include <cmath>
#include <iostream>
int main()
{
    std::cout << std::fixed
              << "ceil(+2.4) = " << std::ceil(+2.4) << '\n'
              << "ceil(-2.4) = " << std::ceil(-2.4) << '\n'
              << "ceil(-0.0) = " << std::ceil(-0.0) << '\n'
              << "ceil(-Inf) = " << std::ceil(-INFINITY) << '\n';
}

Ausgabe:

ceil(+2.4) = 3.000000
ceil(-2.4) = -2.000000
ceil(-0.0) = -0.000000
ceil(-Inf) = -inf

Siehe auch

(C++11) (C++11)
nächstliegende Ganzzahl, die nicht größer als der gegebene Wert ist
(Funktion)
(C++11) (C++11) (C++11)
nächstliegende Ganzzahl, die nicht größer im Betrag als der gegebene Wert ist
(Funktion)
(C++11) (C++11) (C++11) (C++11) (C++11) (C++11) (C++11) (C++11) (C++11)
nächstliegende Ganzzahl, bei Halbfällen von Null weg gerundet
(Funktion)
(C++11) (C++11) (C++11)
nächstliegende Ganzzahl unter Verwendung des aktuellen Rundungsmodus
(Funktion)
(C++11) (C++11) (C++11) (C++11) (C++11) (C++11) (C++11) (C++11) (C++11)
nächstliegende Ganzzahl unter Verwendung des aktuellen Rundungsmodus mit
Ausnahme, falls das Ergebnis abweicht
(Funktion)

Externe Links

Schnelle Aufrundung einer Ganzzahldivision — StackOverflow