Dela via


nextafter, nextafterf, nextafterl, _nextafter, _nextafterf, , nexttoward, , nexttowardfnexttowardl

Returnerar nästa representerande flyttalsvärde.

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 later

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 later

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

Parameterar

x
Flyttalsvärdet som ska startas från.

y
Flyttalsvärdet att gå mot.

Returvärde

Returnerar nästa representerande flyttalsvärde för returtypen efter x i riktning mot y. Om x och y är lika returnerar yfunktionen , konverterad till returtypen, utan att något undantag utlöses. Om x inte är lika med y, och resultatet är en denormal eller noll, anges undantagstillstånden FE_UNDERFLOW och FE_INEXACT flyttalsfelet och rätt resultat returneras. Om antingen x eller y är en NAN är returvärdet ett av indata-NAN:erna. Om x är ändlig och resultatet är oändligt eller inte kan representeras i typen returneras en korrekt signerad oändlighet eller NAN, undantagstillstånden och FE_INEXACT flyttalsfelet FE_OVERFLOW anges och errno är inställt på ERANGE.

Anmärkningar

Funktionsfamiljerna nextafter och nexttoward är likvärdiga, förutom parametertypen y. Om x och y är lika konverteras det returnerade y värdet till returtypen.

Eftersom C++ tillåter överlagring, om du inkluderar <cmath> kan du anropa överlagringar av nextafter och nexttoward som returnerar float och long double typer. I ett C-program, såvida du inte använder makrot <tgmath.h> för att anropa den här funktionen och nextafternexttoward alltid returnerar double.

Om du använder makrot nextafter eller nexttoward från <tgmath.h>avgör typen av argumentet vilken version av funktionen som väljs. Mer information finns i Typ-allmän matematik .

Funktionerna _nextafter och _nextafterf är Microsoft-specifika. Funktionen _nextafterf är endast tillgänglig vid kompilering för x64.

Som standard är den här funktionens globala tillstånd begränsat till programmet. Information om hur du ändrar det här beteendet finns i Globalt tillstånd i CRT.

Kravspecifikation

Rutin Obligatoriskt huvud (C) Obligatoriskt huvud (C++)
nextafter, nextafterf, nextafterl, _nextafterf, nexttoward, , , nexttowardfnexttowardl <math.h> <math.h> eller <cmath>
_nextafter <float.h> <float.h> eller <cfloat>
nextafter makro, nexttoward makro <tgmath.h>

Mer kompatibilitetsinformation finns i Kompatibilitet.

Se även

Stöd för matematik och flyttalsstöd
isnan, , _isnan_isnanf