Partilhar via


nextafter, nextafterf, nextafterl, _nextafter_nextafterf, nexttoward, nexttowardf, nexttowardl

Devolve 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 de ponto flutuante a partir do qual começar.

y
O valor de ponto flutuante para o qual ir.

Valor de retorno

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

Observações

As nextafter famílias de funções e nexttoward são equivalentes, exceto para 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 o C++ permite sobrecarga, se você incluir <cmath> poderá chamar sobrecargas de nextafter e nexttoward que retornam float e long double tipos. Em um programa C, a menos que você esteja usando a <tgmath.h> macro para chamar essa função nextafter e nexttoward sempre retornar double.

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

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

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

Requerimentos

Rotina Cabeçalho obrigatório (C) Cabeçalho obrigató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 mais informações sobre compatibilidade, consulte Compatibilidade.

Consulte também

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