Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at nextafter, nextafterf, nextafterl, _nextafter, _nextafterf, nexttoward, nexttowardf, nexttowardl.
Returns the next representable floating-point value.
Syntax
double nextafter(
double x,
double y
);
float nextafter(
float x,
float y
); /* C++ only, requires <cmath> */
long double nextafter(
long double x,
long double y
); /* C++ only, requires <cmath> */
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 */
double nexttoward(
double x,
long double y
);
float nexttoward(
float x,
long double y
); /* C++ only, requires <cmath> */
long double nexttoward(
long double x,
long double y
); /* C++ only, requires <cmath> */
float nexttowardf(
float x,
long double y
);
long double nexttowardl(
long double x,
long double y
);
Parameters
x
The floating-point value to start from.
y
The floating-point value to go towards.
Return Value
Returns the next representable floating-point value of the return type after x
in the direction of y
. If x
=y
, the function returns y
, converted to the return type, with no exception triggered. If x
is not equal to y
, and the result is a denormal or zero, the FE_UNDERFLOW and FE_INEXACT floating-point exception states are set, and the correct result is returned. If either x
or y
is a NAN, then the return value is one of the input NANs. If x
is finite and the result is infinite or not representable in the type, a correctly signed infinity or NAN is returned, the FE_OVERFLOW and FE_INEXACT floating-point exception states are set, and errno
is set to ERANGE.
Remarks
The nextafter
and nexttoward
function families are equivalent, except for the parameter type of y
. If x
and y
are equal, the value returned is y
converted to the return type.
Because C++ allows overloading, if you include <cmath> you can call overloads of nextafter
and nexttoward
that return float
and long double
types. In a C program, nextafter
and nexttoward
always return double
.
The _nextafter
and _nextafterf
functions are Microsoft specific. The _nextafterf
function is only available when compiling for x64.
Requirements
Routine | Required header (C) | Required header (C++) |
---|---|---|
nextafter , nextafterf , nextafterl , _nextafterf , nexttoward , nexttowardf , nexttowardl |
<math.h> | <math.h> or <cmath> |
_nextafter |
<float.h> | <float.h> or <cfloat> |
For more compatibility information, see Compatibility in the Introduction.