std::nan, std::nanf, std::nanl
De cppreference.com
<tbody>
</tbody>
| Definido en el archivo de encabezado <cmath>
|
||
float nanf( const char* arg ); |
(1) | (desde C++11) |
double nan( const char* arg ); |
(2) | (desde C++11) |
long double nanl( const char* arg ); |
(3) | (desde C++11) |
Convierte la cadena de caracteres arg en el valor NaN simple (quiet) correspondiente, como si llamara a std::strtof, std::strtod o std ::strtold, respectivamente.
1) La llamada
std::nanf("secuencia-de-n-caracteres"), donde secuencia-de-n-caracteres es una secuencia de dígitos, letras ASCII y guiones bajos, es equivalente a la llamada std::strtof("NAN(secuencia-de-n-caracteres)", (char**)nullptr);. La llamada
std::nanf("") es equivalente a la llamada std::strtof("NAN()", (char**)nullptr);. La llamada
std::nanf("string"), donde string no es ni una secuencia-de-n-caracteres ni una cadena vacía, es equivalente a la llamada std::strtof("NAN", (char**)nullptr);.2) Igual que (1), pero llama a
std::strtod en lugar de std::strtof.3) Igual que (1), pero llama a
std::strtold en lugar de std::strtof.Parámetros
| arg | - | Cadena de caracteres angostos que identifican el contenido de un NaN. |
Valor de retorno
El valor NaN simple que corresponde a la cadena de identificación arg o cero si la implementación no admite NaN simples.
Si la implementación admite la aritmética de punto flotante IEEE (IEC 60559), también admite NaN simples.
Manejo de errores
Esta función no está sujeta a ninguna de las condiciones de error especificadas en math_errhandling.
Ejemplo
Ejecuta este código
#include <iostream>
#include <cmath>
#include <cstdint>
#include <cstring>
int main()
{
double f1 = std::nan("1");
std::uint64_t f1n; std::memcpy(&f1n, &f1, sizeof f1);
std::cout << "nan(\"1\") = " << f1 << " (" << std::hex << f1n << ")\n";
double f2 = std::nan("2");
std::uint64_t f2n; std::memcpy(&f2n, &f2, sizeof f2);
std::cout << "nan(\"2\") = " << f2 << " (" << std::hex << f2n << ")\n";
}
Posible salida:
nan("1") = nan (7ff0000000000001)
nan("2") = nan (7ff0000000000002)
Véase también
(C++11) |
Comprueba si el número dado es NaN (función) |
(C++11) |
Se evalúa a un tipo simple de NaN de tipo float (constante de macro) |
[estático] |
identifica tipos de punto flotante que puede representar el valor especial "tranquilo, no un número" (NaN) Original: identifies floating-point types that can represent the special value "quiet not-a-number" (NaN) The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (constante miembro pública estática de std::numeric_limits)
|
[estático] |
identifica tipos de punto flotante que puede representar el valor especial "señalización no un número" (NaN) Original: identifies floating-point types that can represent the special value "signaling not-a-number" (NaN) The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (constante miembro pública estática de std::numeric_limits)
|
[estático] |
devuelve un valor NaN tranquilo de lo dado tipo de punto flotante Original: returns a quiet NaN value of the given floating-point type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro estática pública de std::numeric_limits)
|
[estático] |
devuelve un valor NaN de señalización de lo dado tipo de punto flotante Original: returns a signaling NaN value of the given floating-point type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro estática pública de std::numeric_limits)
|
Documentación de C para nanf, nan, nanl
| |