C++-Standardbibliothek<cmath>

Die C++-Standardbibliothek bietet eine Fülle von Funktionalität, darunter<cmath>ist eine Header-Datei mit mathematischen Funktionen, die viele grundlegende mathematische Operationen und Konstanten bereitstellt.

<cmath>ist eine Header-Datei in der C++-Standardbibliothek, die eine Reihe mathematischer Funktionen definiert, mit denen grundlegende mathematische Operationen wie Potenzierung, trigonometrische Funktionen, Logarithmen, Absolutwerte usw. ausgeführt werden können.

Um<cmath>Um die darin enthaltenen Funktionen zu verwenden, müssen Sie diese Header-Datei in Ihr C++-Programm einbinden:

#include <cmath>

Häufig verwendete Funktionen

<cmath>bietet viele mathematische Funktionen; hier sind einige häufig verwendete.

1. Grundlegende mathematische Funktionen

FunktionFunktionenBeispiel
abs(x)Berechne den Absolutwertxeiner ganzen Zahlabs(-5) // 5
fabs(x)Eine Gleitkommazahl berechnenxeiner ganzen Zahlfabs(-5.5) // 5.5
fmod(x, y)Berechnenxgeteilt durchyder Restfmod(5.3, 2) // 1.3
remainder(x, y)Berechnenxgeteilt durchyder Restremainder(5.5, 2) // 1.5
fmax(x, y)returnxundyder größere Wertfmax(3.5, 4.2) // 4.2
fmin(x, y)returnxundyder kleinere Wertfmin(3.5, 4.2) // 3.5
hypot(x, y)Berechnensqrt(x*x + y*y)hypot(3, 4) // 5

2. Exponential- und Logarithmusfunktionen

FunktionFunktionenBeispiel
exp(x)Berechnene^x,eBasis des natürlichen Logarithmusexp(1) // 2.71828...
log(x)BerechnenxNatürlicher Logarithmus von ⟦0⟧log(2.71828) // 1
log10(x)BerechnenxLogarithmus zur Basis 10 von ⟦0⟧log10(100) // 2
pow(x, y)BerechnenxvonyPotenzpow(2, 3) // 8
sqrt(x)BerechnenxQuadratwurzel von ⟦0⟧sqrt(16) // 4
cbrt(x)BerechnenxKubikwurzel von ⟦0⟧cbrt(27) // 3
expm1(x)Berechnene^x - 1expm1(1) // 1.71828...
log1p(x)Berechnenlog(1 + x), geeignet für Fälle, in denen x nahe bei 0 liegtlog1p(0.00001) // 0.00001

3. Trigonometrische Funktionen

Funktion Funktionen Beispiel
sin(x) BerechnenxSinus von,xIm Bogenmaß sin(3.14159 / 2) // 1
cos(x) BerechnenxKosinus von,xIm Bogenmaß cos(3.14159) // -1
tan(x) BerechnenxTangens von,xIm Bogenmaß tan(0) // 0
asin(x) BerechnenxArkussinus von, gibt das Bogenmaß zurück asin(1) // 3.14159/2
acos(x) BerechnenxArkuskosinus von, gibt das Bogenmaß zurück acos(-1) // 3.14159
atan(x) BerechnenxArkustangens von, gibt das Bogenmaß zurück atan(1) // 3.14159/4
atan2(y, x) Berechneny/xArkustangens von, gibt das Bogenmaß zurück atan2(1, 1) // 3.14159/4

4. Hyperbolische Funktionen

Funktion Funktionen Beispiel
sinh(x) BerechnenxSinus hyperbolicus von sinh(0) // 0
cosh(x) BerechnenxKosinus hyperbolicus von cosh(0) // 1
tanh(x) Berechnenxhyperbolischer Tangens von tanh(1) // 0.7616
asinh(x) Berechnenxinverser hyperbolischer Sinus von asinh(1) // 0.8814
acosh(x) Berechnenxinverser hyperbolischer Kosinus von,x ≥ 1 acosh(1) // 0
atanh(x) Berechnenxinverser hyperbolischer Tangens von,xauf (-1, 1) atanh(0.5) // 0.5493

5. Rundung und Gleitkommaoperationen

Funktion Funktionen Beispiel
ceil(x) Liefert nicht weniger alsxdie kleinste ganze Zahl ceil(2.3) // 3
floor(x) Liefert nicht größer alsxdie größte ganze Zahl floor(2.3) // 2
trunc(x) Liefert den Ganzzahlwert ohne Bruchteil trunc(2.8) // 2
round(x) Liefert die nächste ganze Zahl nach dem Runden round(2.5) // 3
lround(x) Gibt gerundet auflongType lround(2.5) // 3
llround(x) Gibt gerundet auflong longType llround(2.5) // 3
nearbyint(x) liefert gerundet auf die nächste ganze Zahl (löst jedoch keine Gleitkomma-Ausnahmen aus) nearbyint(2.5) // 2
rint(x) liefert eine Rundung auf eine ganze Zahl gemäß dem aktuellen Rundungsmodus rint(2.5) // 3
modf(x, &intpart) wirdxTrennt den ganzzahligen und den gebrochenen Teil von modf(2.3, &intpart)

6. Gleitkomma-Prüfungen

Funktion Funktionen Beispiel
isfinite(x) Prüftxob es ein endlicher Wert ist (nicht unendlich oder NaN) isfinite(3.0) // true
isinf(x) Prüftxob es unendlich ist isinf(1.0 / 0.0) // true
isnan(x) Prüftxob es NaN ist isnan(0.0 / 0.0) // true
isnormal(x) PrüftxOb es eine normale, von null verschiedene Gleitkommazahl ist isnormal(1.0) // true
signbit(x) Prüftxob das Vorzeichen negativ ist signbit(-5.3) // true

Beispiel

Nachfolgend ein Beispiel unter Verwendung von<cmath>Ein einfaches Beispiel für , das zeigt, wie man die Quadratwurzel, den Sinus und den Absolutwert einer Zahl berechnet.

Beispiel 1

#include <iostream>
#include <cmath> // die Headerdatei <cmath> einbinden

int main() {
    double num = 9.0;
    double root = sqrt(num); // Quadratwurzel berechnen
    double sinValue = sin(M_PI / 2); // Sinuswert berechnen, M_PI ist eine Näherung für π
    double absValue = abs(-5.0); // Absolutwert berechnen

    std::cout << "Die Quadratwurzel von " << num << " ist " << root << std::endl;
    std::cout << "Der Sinus von " << M_PI / 2 << " ist " << sinValue << std::endl;
    std::cout << "Der Absolutwert von -5.0 ist " << absValue << std::endl;

    return 0;
}

Ausgabe:

The square root of 9 is 3
The sine of 1.570796 is 1
The absolute value of -5 is 5

Beispiel 2

#include <iostream>
#include <cmath>

int main() {
    // Grundlegende mathematische Operationen
    std::cout << "abs(-5) = " << abs(-5) << std::endl;
    std::cout << "fmod(5.3, 2) = " << fmod(5.3, 2) << std::endl;

    // Exponential- und Logarithmusfunktionen
    std::cout << "exp(1) = " << exp(1) << std::endl;
    std::cout << "log(2.71828) = " << log(2.71828) << std::endl;
    std::cout << "pow(2, 3) = " << pow(2, 3) << std::endl;

    // Trigonometrische Funktionen
    std::cout << "sin(3.14159 / 2) = " << sin(3.14159 / 2) << std::endl;
    std::cout << "cos(3.14159) = " << cos(3.14159) << std::endl;

    // Rundungsfunktionen
    std::cout << "ceil(2.3) = " << ceil(2.3) << std::endl;
    std::cout << "floor(2.3) = " << floor(2.3) << std::endl;

    // Gleitkomma-Prüfungen
    double x = 1.0 / 0.0;
    if (isinf(x)) {
        std::cout << "x ist unendlich" << std::endl;
    }

    return 0;
}

Hinweise

  • <cmath>Funktionen in akzeptieren normalerweisefloatoderdoubleTypargumente und Rückgabeergebnisse des entsprechenden Typs. Fürlong doubleTyp können Sie verwenden<cmath>Funktionen in , aber Sie müssen nach dem Funktionsnamen hinzufügenlSuffix, zum Beispielsqrtl。
  • Bestimmte Funktionen, wie z. B.powundlog, können Sie Ganzzahlen als Argumente übergeben, aber das Ergebnis ist weiterhin eine Gleitkommazahl.
  • <cmath>Funktionen in können Ausnahmen auslösen, zum Beispiel wennsqrtWenn das Argument der Funktion negativ ist, löst sie eine Ausnahme ausstd::domain_erroreine Ausnahme.
  • <cmath>ist eine sehr nützliche Header-Datei in der C++-Standardbibliothek. Sie bietet viele grundlegende mathematische Funktionen, die Entwicklern helfen können, beim Schreiben von Programmen mathematische Operationen durchzuführen.

    Weitere Erweiterungen