Namespaces
Variants

NAN

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
NAN DEC_NAN
(C99) (C23)
Arguments and return values
Error handling
Fast operation indicators
Definido en el encabezado <math.h>
#define NAN /*implementation defined*/
(desde C99)

La macro NAN se expande a una expresión constante de tipo float , que evalúa a un valor silencioso de no-es-un-número (QNaN). Si la implementación no soporta QNaNs, esta macro constante no está definida.

El estilo utilizado para imprimir un NaN está definido por la implementación.

Contenidos

Notas

Existen muchos valores NaN diferentes, diferenciados por sus cargas útiles y sus bits de signo. El contenido de la carga útil y el bit de signo del NaN generado por la macro NAN están definidos por la implementación.

Ejemplo

Muestra el estilo utilizado para imprimir un NaN y el formato IEEE.

#include <inttypes.h>
#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
    const double f = NAN;
    uint64_t fn;
    memcpy(&fn, &f, sizeof f);
    printf("NAN:   %f %" PRIx64 "\n", f, fn);
}

Salida posible:

NAN:   nan 7ff8000000000000

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.12/5 NAN (p: TBD)
  • F.10/11/13 NAN (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.12/5 NAN (p: TBD)
  • F.10/11/13 NAN (p: TBD)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.12/5 NAN (p: 232)
  • F.10/11/13 NAN (p: 518)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.12/5 NAN (p: 213)
  • F.9/11/13 NAN (p: 455)

Véase también

(C99) (C99) (C99)
devuelve un NaN (no es un número)
(función)
(C99)
comprueba si el número dado es NaN
(macro de función)