nextafter, nextafterf, nextafterl, _nextafter, _nextafterf, nexttoward, nexttowardf, nexttowardl
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.
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.
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.
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.
| 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.