fmod-, fmodf-, fmodl-, fmodd32-, fmodd64-und fmodd128 -Subroutinen
Zweck
Berechnet den Gleitkommarestwert.
Syntax
Beschreibung
Die Subroutinen FMODF, Fmodl, FMod, fmodd32, fmodd64und fmodd128 geben den Gleitkommarest der Division von X durch Jzurück.
Eine Anwendung, die nach Fehlersituationen suchen möchte, muss die globale Variable Fehlernummer auf null setzen und Feclearexceptaufrufen (FE_ALL_EXCEPT), bevor diese Subroutinen aufgerufen werden. Wenn Fehlernummer bei der Rückgabe ungleich null ist oder Fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) ungleich null ist, ist ein Fehler aufgetreten.
Parameter
| Element | Beschreibung |
|---|---|
| x | Gibt den zu berechnenden Wert an |
| y | Gibt den zu berechnenden Wert an |
Rückgabewerte
Die Subroutinen FMODF, Fmodl, FMod, fmodd32, fmodd64und fmodd128 geben den Wert X- I *Jzurück. Für die Ganzzahl I , sodass das Ergebnis, wenn J ungleich null ist, dasselbe Vorzeichen wie X hat und das Ausmaß kleiner als das Ausmaß von Jist.
Wenn der richtige Wert zu einem Unterlauf führt und nicht darstellbar ist, kann ein Bereichsfehler auftreten und 0.0 wird zurückgegeben.
Wenn " x oder " y " NaN, ist, wird " NaN zurückgegeben.
Wenn y null ist, tritt ein Domänenfehler auf und ein NaN wird zurückgegeben.
Wenn x unendlich ist, tritt ein Domänenfehler auf und NaN wird zurückgegeben.
Wenn X ± 0 und J ungleich null ist, wird ± 0 zurückgegeben.
Wenn X nicht unendlich ist und J ± Inf ist, wird X zurückgegeben.
Wenn der richtige Wert einen Unterlauf verursacht und darstellbar ist, kann ein Bereichsfehler auftreten und der richtige Wert wird zurückgegeben.
Wenn der korrekte Wert null ist, kann ein Rundungsfehler dazu führen, dass der Rückgabewert von 0.0abweicht. Je nach den Werten von x und yund dem Rundungsmodus kann die Größe des Rückgabewerts in diesem Fall nahe 0.0 oder nahe der Größe von y liegen. Dieser Fall kann durch die Verwendung der dezimalen Gleitkommasubroutinen (fmodd32, fmodd64und fmodd128) vermieden werden.