Condividi tramite


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

Restituisce il valore a virgola mobile rappresentabile successivo.

Sintassi

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

Parametri

x
Valore a virgola mobile da cui partire.

y
Valore a virgola mobile da cui proseguire.

Valore restituito

Restituisce il valore a virgola mobile rappresentabile del tipo restituito successivo, dopo x nella direzione di y. Se x e y sono uguali, la funzione restituisce y, convertita nel tipo restituito, senza alcuna eccezione attivata. Se x non è uguale a ye il risultato è denormale o zero, vengono impostati gli FE_UNDERFLOW stati di eccezione a virgola mobile e FE_INEXACT viene restituito il risultato corretto. Se x o y è NaN, il valore restituito è uno dei valori NaN di input. Se x è finito e il risultato è infinito o non rappresentabile nel tipo, viene restituito un valore infinito o NAN con segno corretto, gli FE_OVERFLOW stati di eccezione a virgola mobile e FE_INEXACT vengono impostati errno su ERANGE.

Osservazioni:

Le famiglie di funzioni nextafter e nexttoward sono equivalenti, tranne per il tipo del parametro y. Se x e y sono uguali, il valore restituito è y convertito nel tipo restituito.

Poiché C++ consente l'overload, se si includono <cmath> è possibile chiamare overload di nextafter e che restituiscono float e nexttowardlong double tipi. In un programma C, a meno che non si usi la <tgmath.h> macro per chiamare questa funzione nextafter e nexttoward restituire doublesempre .

Se si utilizza la nextafter macro o nexttowardda <tgmath.h>, il tipo dell'argomento determina quale versione della funzione è selezionata. Per informazioni dettagliate, vedere La matematica generica dei tipi.

Le _nextafter funzioni e _nextafterf sono specifiche di Microsoft. La funzione _nextafterf è disponibile solo per la compilazione per la piattaforma x64.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Requisiti

Ciclo Intestazione obbligatoria (C) Intestazione obbligatoria (C++)
nextafter, nextafterf, nextafterl, _nextafterf, nexttoward, nexttowardf, nexttowardl <math.h> <math.h> oppure <cmath>
_nextafter <float.h> <float.h> oppure <cfloat>
nextafter macro, nexttoward macro <tgmath.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Vedi anche

Supporto matematico e a virgola mobile
isnan, _isnan, _isnanf