Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 later
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 later
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