std:: abs (float) , std:: fabs, std:: fabsf, std:: fabsl
|
Definiert in Header
<cmath>
|
||
|
Definiert in Header
<cstdlib>
|
||
| (1) | ||
|
float
abs
(
float
num
)
;
double
abs
(
double
num
)
;
|
(bis C++23) | |
|
constexpr
/* floating-point-type */
abs ( /* floating-point-type */ num ) ; |
(seit C++23) | |
|
Definiert in Header
<cmath>
|
||
| (2) | ||
|
float
fabs
(
float
num
)
;
double
fabs
(
double
num
)
;
|
(bis C++23) | |
|
constexpr
/* floating-point-type */
fabs ( /* floating-point-type */ num ) ; |
(seit C++23) | |
|
float
fabsf
(
float
num
)
;
|
(3) |
(seit C++11)
(constexpr seit C++23) |
|
long
double
fabsl
(
long
double
num
)
;
|
(4) |
(seit C++11)
(constexpr seit C++23) |
|
Zusätzliche Überladungen
(seit C++11)
|
||
|
Definiert in Header
<cmath>
|
||
|
template
<
class
Integer
>
double fabs ( Integer num ) ; |
(A) |
(seit C++11)
(constexpr seit C++23) |
std::abs
und
std::fabs
für alle cv-unqualifizierten Gleitkommatypen als Typ des Parameters
num
an.
(since C++23)
|
A)
Zusätzliche Überladungen werden für alle Ganzzahltypen bereitgestellt, die als
double
behandelt werden.
|
(since C++11) |
Für ganzzahlige Argumente sind
die ganzzahligen Überladungen von
std::abs
wahrscheinlich besser geeignet. Wenn
std::abs
mit einem vorzeichenlosen ganzzahligen Argument aufgerufen wird, das nicht durch
Ganzzahliges Höherstufen
in
int
konvertiert werden kann, ist das Programm fehlerhaft.
Inhaltsverzeichnis |
Parameter
| num | - | Gleitkomma- oder Ganzzahlwert |
Rückgabewert
Bei Erfolg wird der Absolutbetrag von
arg
(
|arg|
) zurückgegeben. Der zurückgegebene Wert ist exakt und hängt von keinen Rundungsmodi ab.
Fehlerbehandlung
Diese Funktion unterliegt keinen der in math_errhandling spezifizierten Fehlerbedingungen.
Wenn die Implementierung IEEE-Gleitkommaarithmetik (IEC 60559) unterstützt,
- Wenn das Argument ±0 ist, wird +0 zurückgegeben.
- Wenn das Argument ±∞ ist, wird +∞ zurückgegeben.
- Wenn das Argument NaN ist, wird NaN zurückgegeben.
Hinweise
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 :: fabs ( num ) die gleiche Wirkung hat wie std :: fabs ( static_cast < double > ( num ) ) .
Beispiel
#include <cmath> #include <iostream> int main() { std::cout << "abs(+3.0) = " << std::abs(+3.0) << '\n' << "abs(-3.0) = " << std::abs(-3.0) << '\n'; // special values std::cout << "abs(-0.0) = " << std::abs(-0.0) << '\n' << "abs(-Inf) = " << std::abs(-INFINITY) << '\n' << "abs(-NaN) = " << std::abs(-NAN) << '\n'; }
Mögliche Ausgabe:
abs(+3.0) = 3 abs(-3.0) = 3 abs(-0.0) = 0 abs(-Inf) = inf abs(-NaN) = nan
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 2192 | C++98 |
Überladungen von
std::abs
waren
inkonsistent in zwei Headern deklariert |
deklarierte diese Überladungen
in beiden Headern |
| LWG 2735 | C++11 |
Überladungen von
std::abs
für Ganzzahltypen
die double zurückgeben, waren fälschlicherweise erforderlich |
entfernte die Anforderung |
Siehe auch
|
(C++11)
|
berechnet den absoluten Wert eines ganzzahligen Wertes (
|x|
)
(Funktion) |
|
(C++11)
(C++11)
(C++11)
|
kopiert das Vorzeichen eines Gleitkommawertes
(Funktion) |
|
(C++11)
|
prüft, ob die gegebene Zahl negativ ist
(Funktion) |
|
gibt den Betrag einer komplexen Zahl zurück
(Funktions-Template) |
|
|
wendet die Funktion
abs
auf jedes Element des valarray an
(Funktions-Template) |
|
|
C-Dokumentation
für
fabs
|
|