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