nextafter, nextafterf, nextafterl, _nextafter, _nextafterf, nexttoward, nexttowardf, nexttowardl

Gibt den nächsten darstellbaren Gleitkommawert zurück.

Syntax

double nextafter( double x, double y );
float nextafterf( float x, float y );
long double nextafterl( long double x, long double y );

double _nextafter( double x, double y );
float _nextafterf( float x, float y ); /* x64 only */

#define nextafter(X, Y) // Requires C11 or higher

double nexttoward( double x, long double y );
float nexttowardf( float x, long double y );
long double nexttowardl( long double x, long double y );

#define nexttoward(X, Y) // Requires C11 or higher

float nextafter( float x, float y ); /* C++ only, requires <cmath> */
long double nextafter( long double x, long double y ); /* C++ only, requires <cmath> */

float nexttoward( float x, long double y ); /* C++ only, requires <cmath> */
long double nexttoward( long double x, long double y ); /* C++ only, requires <cmath> */

Parameter

x
Der Gleitkommawert, der den Startpunkt markiert.

y
Der Gleitkommawert, der den Zielpunkt markiert.

Rückgabewert

Gibt den nächsten darstellbaren Gleitkommawert des Rückgabetyps nach x in Richtung y an. Wenn x und y gleich sind, gibt die Funktion zurück y, konvertiert in den Rückgabetyp, ohne Ausnahme ausgelöst. Wenn x dies nicht gleich yist und das Ergebnis ein Denormal oder Null ist, werden die FE_UNDERFLOW Ausnahmezustände für Gleitkomma FE_INEXACT und Gleitkomma festgelegt, und das richtige Ergebnis wird zurückgegeben. Wenn x oder y eine NaN ist, dann entspricht der Rückgabewert einer der Eingabe-NaN. Wenn x es endlich ist und das Ergebnis unendlich oder nicht im Typ dargestellt werden kann, wird eine ordnungsgemäß signierte Unendlichkeit oder NAN zurückgegeben, die Ausnahmezustände und FE_INEXACT Gleitkommazustände FE_OVERFLOW werden festgelegt und errno auf ERANGE.

Hinweise

Die nextafter und nexttoward-Funktionsfamilien sind mit Ausnahme des Parametertyps von y gleichwertig. Wenn x und y identisch sind, ist der zurückgegebene Wert y. Dieser wird in den Rückgabetyp konvertiert.

Da C++ Überladungen zulässt, können Sie, wenn Sie Überladungen von nextafter und diese Rückgabe float und long double Typen einschließen <cmath>nexttoward. In einem C-Programm, es sei denn, Sie verwenden das <tgmath.h> Makro, um diese Funktion aufzurufen, nextafter und nexttoward geben immer zurück double.

Wenn Sie das Argument oder nexttowarddas nextafter Makro <tgmath.h>verwenden, bestimmt der Typ des Arguments, welche Version der Funktion ausgewählt ist. Ausführliche Informationen finden Sie unter "Typgenerika" .

Die _nextafter Funktionen sind _nextafterf microsoftspezifisch. Die _nextafterf-Funktion ist nur verfügbar, wenn für x64 kompiliert wird.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.

Anforderungen

Routine Erforderlicher Header (C) Erforderlicher Header (C++)
nextafter, nextafterf, nextafterl, _nextafterf, nexttoward, nexttowardf, nexttowardl <math.h> <math.h> oder <cmath>
_nextafter <float.h> <float.h> oder <cfloat>
nextafter Makro, nexttoward Makro <tgmath.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Siehe auch

Mathematische und Gleitkommaunterstützung
isnan, _isnan, _isnanf