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_OVERFLOWFE_INEXACT и состояния исключения с плавающей запятой задаются и errno имеют значение ERANGE.

Замечания

Семейства функций nextafter и nexttoward эквивалентны за исключением типа параметра y. Если значения x и y равны, возвращается значение y, преобразованное в возвращаемый тип.

Так как C++ разрешает перегрузку, при включении <cmath> можно вызывать перегрузки nextafter и nexttoward возвращать float и long double типы. Если макрос не используется <tgmath.h> для вызова этой функции и nextafternexttoward всегда возвращается 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