Namensräume
Varianten
Aktionen

std::abs(float), std::fabs, std::fabsf, std::fabsl

Von cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
 
Definiert in der Header-Datei <cmath>
Definiert in Header <cstdlib>
(1)
float       abs( float num );

double      abs( double num );

long double abs( long double num );
(bis C++23)
constexpr /* gleitkommazahl-Typ */
            abs( /* Gleitkommazahltyp */ num );
(seit C++23)
Definiert in der Header-Datei <cmath>
(2)
float       fabs ( float num );

double      fabs ( double num );

long double fabs ( long double num );
(bis C++23)
constexpr /* gleitkommazahl-Typ */
            fabs ( /* Gleitkommazahltyp */ 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)
Definiert in der Header-Datei <cmath>
template< class Integer >
double      fabs ( Integer num );
(A) (seit C++11)
(constexpr seit C++23)
1-4) Berechnet den Absolutwert des Gleitkommawerts num. Die Bibliothek stellt Überladungen von std::abs und std::fabs für alle cv-unqualifizierten Gleitkommatypen als Parametertyp von num bereit.(seit C++23)
A) Zusätzliche Überladungen werden für alle ganzzahligen Typen bereitgestellt, die als double behandelt werden.
(seit 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 durch Ganzzahlpromotion nicht in int konvertiert werden kann, ist das Programm fehlerhaft.

Inhalt

[edit] Parameter

num - Gleitkomma- oder Ganzzahlwert

[edit] Rückgabewert

Bei Erfolg wird der Absolutwert von arg (|arg|) zurückgegeben. Der zurückgegebene Wert ist exakt und hängt nicht von Rundungsmodi ab.

[edit] Fehlerbehandlung

Diese Funktion unterliegt keinen der in math_errhandling spezifizierten Fehlerbedingungen.

Wenn die Implementierung IEEE-Gleitkomma-Arithmetik (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.

[edit] Anmerkungen

Die zusätzlichen Überladungen müssen nicht genau wie (A) bereitgestellt werden. Sie müssen nur ausreichend sein, um sicherzustellen, dass für ihr Argument num vom ganzzahligen Typ std::fabs(num) die gleiche Wirkung hat wie std::fabs(static_cast<double>(num)).

[edit] 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

[edit] Fehlerberichte

Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 2192 C++98 Überladungen von std::abs wurden
inkonsistent in zwei Headern deklariert
deklarierten diese Überladungen
in beiden Headern
LWG 2735 C++11 Überladungen von std::abs für ganzzahlige Typen
die double zurückgaben, wurden fälschlicherweise gefordert
Anforderung entfernt

[edit] Siehe auch

berechnet den Absolutwert eines ganzzahligen Wertes (|x|)
(Funktion) [bearbeiten]
(C++11)(C++11)(C++11)
kopiert das Vorzeichen eines Gleitkommawerts
(Funktion) [bearbeiten]
(C++11)
prüft, ob die gegebene Zahl negativ ist
(Funktion) [bearbeiten]
gibt den Betrag einer komplexen Zahl zurück
(function template) [edit]
wendet die Funktion abs auf jedes Element des Valarrays an
(function template) [edit]
C-Dokumentation für fabs