nextafter
, nextafterf
, nextafterl
_nextafter
_nextafterf
nexttoward
nexttowardf
nexttowardl
Возвращает следующее представимое значение с плавающей запятой.
Синтаксис
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> */
Параметры
x
Начальное значение с плавающей запятой.
y
Следующее значение с плавающей запятой.
Возвращаемое значение
Возвращает следующее представимое значение с плавающей запятой возвращаемого типа, следующее за значением x
в направлении значения y
. Если x
и y
равны, функция возвращается y
, преобразованная в тип возвращаемого значения без исключения. Если x
значение равно y
, и результат является денормальным или нулевым, FE_UNDERFLOW
задаются состояния исключения с FE_INEXACT
плавающей запятой и возвращается правильный результат. Если параметр x
или y
имеет значение NAN, то возвращаемое значение является одним из входных значений NaN. Если x
конечный, и результат является бесконечным или не представляется в типе, возвращается правильно подписанный бесконечность или NAN, FE_OVERFLOW
FE_INEXACT
и состояния исключения с плавающей запятой задаются и errno
имеют значение ERANGE
.
Замечания
Семейства функций nextafter
и nexttoward
эквивалентны за исключением типа параметра y
. Если значения x
и y
равны, возвращается значение y
, преобразованное в возвращаемый тип.
Так как C++ разрешает перегрузку, при включении <cmath>
можно вызывать перегрузки nextafter
и nexttoward
возвращать float
и long double
типы. Если макрос не используется <tgmath.h>
для вызова этой функции и nextafter
nexttoward
всегда возвращается double
в программе C.
Если вы используете nextafter
или nexttoward
макрос из <tgmath.h>
, тип аргумента определяет, какая версия функции выбрана. Дополнительные сведения см . в разделе "Математика с универсальным типом".
_nextafterf
Функции _nextafter
относятся к корпорации Майкрософт. Функция _nextafterf
доступна только при компиляции для x64.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Требования
Маршрут | Обязательный заголовок (C) | Обязательный заголовок (C++) |
---|---|---|
nextafter , nextafterf , nextafterl _nextafterf nexttoward nexttowardf nexttowardl |
<math.h> |
<math.h> или <cmath> |
_nextafter |
<float.h> |
<float.h> или <cfloat> |
nextafter макрос, nexttoward макрос |
<tgmath.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
См. также
Поддержка математических и плавающих точек
isnan
, , _isnan
_isnanf