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 y
e 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 nexttoward
long double
tipi. In un programma C, a meno che non si usi la <tgmath.h>
macro per chiamare questa funzione nextafter
e nexttoward
restituire double
sempre .
Se si utilizza la nextafter
macro o nexttoward
da <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