fmod(3) Library Functions Manual fmod(3)

fmod, fmodf, fmodl - Funktionen berechnen Divisionsrest als Fließkommazahl

Mathematik-Bibliothek (libm, -lm)

ÜBERSICHT

#include <math.h>
double fmod(double x, double y);
float fmodf(float x, float y);
long double fmodl(long double x, long double y);
Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)):

fmodf(), fmodl():

    _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
        || /* Seit Glibc 2.19: */ _DEFAULT_SOURCE
        || /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

Diese Funktionen berechnen den Rest der Division von x durch y als Fließkommazahl. Der Rückgabewert ist x - n * y, wobei n der zur Ganzzahl abgerundete Quotient von x / y ist.

Um den Modulus zu erhalten, genauer das kleinste positive Residuum, müssen Sie die Ausgabe von fmod wie folgt anpassen:


z = fmod(x, y);
if (z < 0)
	z += y;

Alternativ können Sie das als fmod(fmod(x, y) + y, y) formulieren, aber das zweite fmod kostet deutlich mehr als eine Verzweigung.

Bei Erfolg geben diese Funktionen den Wert x - n*y für diejenige Ganzzahl n zurück, so dass der zurückgegebene Wert das gleiche Vorzeichen wie x hat und einen Betrag, der kleiner ist als der Betrag von y.

Falls x oder y keine Zahlen (»NaN«) sind, wird »NaN« zurückgegeben.

Falls x unendlich ist, tritt ein Wertebereichsfehler auf und es wird »NaN« zurückgegeben.

Falls y Null ist, tritt ein Wertebereichsfehler auf und es wird »NaN« zurückgegeben.

Falls x +0 (-0) und y nicht Null ist, wird +0 (-0) zurückgegeben.

In math_error(7) erfahren Sie, wie Sie Fehler bei der Ausführung dieser Funktionen erkennen.

Die folgenden Fehler können auftreten:

errno wird auf EDOM gesetzt (siehe aber FEHLER). Es wird der Fließkomma-Ausnahmefehler »unzulässige Fließkommazahl« (FE_INVALID) ausgelöst.
errno wird auf EDOM gesetzt. Es wird der Fließkomma-Ausnahmefehler »unzulässige Fließkommazahl« (FE_INVALID) ausgelöst.

Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.

Schnittstelle Attribut Wert
fmod(), fmodf(), fmodl() Multithread-Fähigkeit MT-Sicher

C11, POSIX.1-2008.

C99, POSIX.1-2001.

Die Variante, die double zurückgibt, ist außerdem konform zu SVr4, 4.3BSD, C89.

Vor Glibc 2.10 setzte die Glibc-Implementierung errno nicht auf EDOM, wenn ein Wertebereichsfehler für ein unendliches x auftrat.

Der Aufruf fmod(372, 360) liefert 348 zurück.

Der Aufruf fmod(-372, 360) liefert -12 zurück.

Der Aufruf fmod(-372, -360) liefert auch -12 zurück.

remainder(3)

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Markus Schmitt <fw@math.uni-sb.de>, Chris Leick <c.leick@vollbio.de> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

2. Mai 2024 Linux man-pages 6.8