Partilhar via


nextafter, nextafterf, nextafterl, _nextafter, _nextafterf, nexttoward, , nexttowardf, , nexttowardl

Retorna o próximo valor de ponto flutuante representável.

Sintaxe

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

Parâmetros

x
O valor do ponto flutuante a ser iniciado.

y
O valor do ponto flutuante a ser destinado.

Valor retornado

Retorna o próximo valor de ponto flutuante representável do tipo de retorno após x na direção de y. Se x e y são iguais, a função retornará y, convertido para o tipo de retorno, com nenhuma exceção acionada. Se x não for igual a y, e o resultado for denormal ou zero, os FE_UNDERFLOW estados de exceção e FE_INEXACT de ponto flutuante serão definidos e o resultado correto será retornado. Se x ou y for um NAN, o valor retornado será um dos NANs de entrada. Se x for finito e o resultado for infinito ou não representável no tipo, um infinito corretamente assinado ou NAN será retornado, os estados de exceção de ponto flutuante FE_OVERFLOW e FE_INEXACT serão definidos e errno será definido como ERANGE.

Comentários

As famílias de função nextafter e nexttoward são equivalentes, exceto o tipo de parâmetro de y. Se x e y forem iguais, o valor retornado será y convertido para o tipo de retorno.

Como C++ permite sobrecargas, se você incluir <cmath> será possível chamar sobrecargas de nextafter e nexttoward que retornam os tipos float e long double. Em um programa C, a menos que você esteja usando a macro <tgmath.h> para chamar essa função, nextafter e nexttoward sempre retornam double.

Se você usar a nextafter macro ou nexttoward de <tgmath.h>, o tipo do argumento determinará qual versão da função será selecionada. Confira Matemática do tipo genérico para obter detalhes.

As funções _nextafter e _nextafterf são específicas da Microsoft. A função _nextafterf só está disponível quando compilada para x64.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.

Requisitos

Rotina Cabeçalho necessário (C) Cabeçalho necessário (C++)
nextafter, nextafterf, nextafterl, _nextafterf, nexttoward, nexttowardf, , nexttowardl <math.h> <math.h> ou <cmath>
_nextafter <float.h> <float.h> ou <cfloat>
nextafter macro, nexttoward macro <tgmath.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Confira também

Suporte matemático e de ponto flutuante
isnan, _isnan, _isnanf