Share via


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

Retourne la valeur à virgule flottante représentable suivante.

Syntaxe

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> */

Paramètres

x
Valeur à virgule flottante de départ.

y
Valeur à virgule flottante d’arrivée.

Valeur retournée

Retourne la valeur à virgule flottante représentable suivante du type de retour après x dans la direction de y. Si x et y sont égaux, la fonction retourne y, convertie en type de retour, sans exception déclenchée. Si x ce n’est pas égal à y, et que le résultat est un dénormal ou zéro, les FE_UNDERFLOWFE_INEXACT états d’exception à virgule flottante sont définis et le résultat correct est retourné. Si x ou y est un NaN, la valeur de retour est l’un des NaN d’entrée. S’il x est fini et que le résultat est infini ou ne peut pas être représenté dans le type, un infini correctement signé ou NAN est retourné, les FE_INEXACTFE_OVERFLOW états d’exception à virgule flottante sont définis et errno sont définis sur ERANGE.

Notes

Les familles des fonctions nextafter et nexttoward sont équivalentes, à l’exception du type de paramètre de y. Si x et y sont égaux, la valeur retournée est y convertie dans le type de retour.

Étant donné que C++ autorise la surcharge, si vous incluez<cmath>, vous pouvez appeler des surcharges de nextafter retour et nexttowardlong double de typesfloat. Dans un programme C, sauf si vous utilisez la <tgmath.h> macro pour appeler cette fonction, nextafter et nexttoward toujours retourner double.

Si vous utilisez le ou nexttowardla nextafter macro à partir de <tgmath.h>, le type de l’argument détermine la version de la fonction sélectionnée. Pour plus d’informations, consultez les mathématiques génériques de type.

Les _nextafter fonctions et _nextafterf les fonctions sont spécifiques à Microsoft. La fonction _nextafterf est n’est disponible que quand elle est compilée pour x64.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Spécifications

Routine En-tête requis (C) En-tête requis (C++)
nextafter, nextafterf, nextafterl, _nextafterf, nexttoward, nexttowardf, nexttowardl <math.h> <math.h> ou <cmath>
_nextafter <float.h> <float.h> ou <cfloat>
nextafter macro, nexttoward macro <tgmath.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Voir aussi

Prise en charge mathématique et à virgule flottante
isnan, _isnan, _isnanf