nan, nanf, nanl, nand32, nand64, nand128
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definido en el encabezado
<math.h>
|
||
|
float
nanf
(
const
char
*
arg
)
;
|
(1) | (desde C99) |
|
double
nan
(
const
char
*
arg
)
;
|
(2) | (desde C99) |
|
long
double
nanl
(
const
char
*
arg
)
;
|
(3) | (desde C99) |
|
_Decimal32 nand32
(
const
char
*
arg
)
;
|
(4) | (desde C23) |
|
_Decimal64 nand64
(
const
char
*
arg
)
;
|
(5) | (desde C23) |
|
_Decimal128 nand128
(
const
char
*
arg
)
;
|
(6) | (desde C23) |
Convierte la cadena de caracteres definida por la implementación
arg
en el valor NaN silencioso correspondiente, como si se llamara a la función de análisis apropiada
strtoX
, de la siguiente manera:
- La llamada nan ( "n-char-sequence" ) , donde n-char-sequence es una secuencia de dígitos, letras latinas y guiones bajos, es equivalente a la llamada /*strtoX*/ ( "NAN(n-char-sequence)" , ( char ** ) NULL ) ; .
- La llamada nan ( "" ) es equivalente a la llamada /*strtoX*/ ( "NAN()" , ( char ** ) NULL ) ; .
- La llamada nan ( "string" ) , donde string no es ni una n-char-sequence ni una cadena vacía, es equivalente a la llamada /*strtoX*/ ( "NAN" , ( char ** ) NULL ) ; .
|
Las funciones que devuelven valores de punto flotante decimal se declaran si y solo si la implementación predefine
|
(desde C23) |
Contenidos |
Parámetros
| arg | - | cadena de caracteres estrecha que identifica el contenido de un NaN |
Valor de retorno
El valor NaN silencioso que corresponde a la cadena identificadora
arg
o cero si la implementación no admite NaN silenciosos.
Si la implementación soporta aritmética de punto flotante IEEE (IEC 60559), también soporta NaNs silenciosos.
Manejo de errores
Esta función no está sujeta a ninguna de las condiciones de error especificadas en math_errhandling .
Ejemplo
#include <stdio.h> #include <math.h> #include <stdint.h> #include <inttypes.h> #include <string.h> int main(void) { double f1 = nan("1"); uint64_t f1n; memcpy(&f1n, &f1, sizeof f1); printf("nan(\"1\") = %f (%" PRIx64 ")\n", f1, f1n); double f2 = nan("2"); uint64_t f2n; memcpy(&f2n, &f2, sizeof f2); printf("nan(\"2\") = %f (%" PRIx64 ")\n", f2, f2n); double f3 = nan("0xF"); uint64_t f3n; memcpy(&f3n, &f3, sizeof f3); printf("nan(\"0xF\") = %f (%" PRIx64 ")\n", f3, f3n); }
Salida posible:
nan("1") = nan (7ff8000000000001)
nan("2") = nan (7ff8000000000002)
nan("0xF") = nan (7ff800000000000f)
Referencias
- Estándar C17 (ISO/IEC 9899:2018):
-
- 7.12.11.2 Las funciones nan (p: 186-187)
-
- F.10.8.2 Las funciones nan (p: 386)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 7.12.11.2 Las funciones nan (p: 256)
-
- F.10.8.2 Las funciones nan (p: 529)
- Estándar C99 (ISO/IEC 9899:1999):
-
- 7.12.11.2 The nan functions (p: 237)
-
- F.9.8.2 The fabs functions (p: 465)
Véase también
|
(C99)
|
comprueba si el número dado es NaN
(macro de función) |
|
(C99)
|
se evalúa como un NaN silencioso de tipo
float
(constante macro) |
|
Documentación de C++
para
nanf
,
nan
,
nanl
|
|