Namespaces
Variants

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

From cppreference.net
Common mathematical functions
Nearest integer floating point operations
(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>
Definiert in Header <cstdlib>
(1)
float abs ( float num ) ;

double abs ( double num ) ;

long double abs ( long 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 ) ;

long double fabs ( long 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)
Definiert in Header <cmath>
template < class Integer >
double fabs ( Integer num ) ;
(A) (seit C++11)
(constexpr seit C++23)
1-4) Berechnet den absoluten Wert des Gleitkommawerts num . Die Bibliothek bietet Überladungen von 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

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)