isnan
, _isnan
, _isnanf
Testa se um valor de ponto flutuante é um NaN ("Não é um número").
Sintaxe
int isnan(
/* floating-point */ x
); /* C-only macro */
int _isnan(
double x
);
int _isnanf(
float x
); /* x64 only */
template <class T>
bool isnan(
T x
) throw(); /* C++ only */
Parâmetros
x
O valor de ponto flutuante a ser testado.
Valor retornado
Em C, a isnan
macro e as _isnan
funções e _isnanf
retornam um valor diferente de zero se o argumento x
for um NaN; caso contrário, elas retornam 0.
Em C++, a isnan
função de modelo retorna true
se o argumento x
for um NaN; caso contrário, ela retorna false
.
Comentários
Como um valor NaN não se compara como igual a si mesmo ou a qualquer outro valor NaN, para detectar um, você deve usar uma dessas funções ou macros. Um NAN é gerado quando o resultado de uma operação de ponto flutuante não puder ser representado no formato de ponto flutuante IEEE-754 para o tipo especificado. Para obter informações sobre como um NaN é representado para saída, consulte printf
.
Quando compilada como C++, a isnan
macro não é definida e uma isnan
função de modelo é definida. Ele se comporta da mesma maneira que a macro, mas retorna um valor de tipo bool
em vez de um inteiro.
As funções _isnan
e _isnanf
são específicas da Microsoft. A função _isnanf
só está disponível quando compilada para x64.
Requisitos
Rotina | Cabeçalho necessário (C) | Cabeçalho necessário (C++) |
---|---|---|
isnan , _isnanf |
<math.h> | <math.h> ou <cmath> |
_isnan |
<float.h> | <float.h> ou <cfloat> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Confira também
Suporte matemático e de ponto flutuante
fpclassify
_fpclass
, _fpclassf
isfinite
, _finite
, _finitef
isinf
isnormal