std:: ceil, std:: ceilf, std:: ceill
|
Definiert in Header
<cmath>
|
||
| (1) | ||
|
float
ceil
(
float
num
)
;
double
ceil
(
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
>
|
(S) | (seit C++26) |
|
Zusätzliche Überladungen
(seit C++11)
|
||
|
Definiert in Header
<cmath>
|
||
|
template
<
class
Integer
>
double ceil ( Integer num ) ; |
(A) | (constexpr seit C++23) |
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.
|
(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⌉ .
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) |
|
C-Dokumentation
für
ceil
|
|
Externe Links
| Schnelle Aufrundung einer Ganzzahldivision — StackOverflow |