std::nan, std::nanf, std::nanl
Von cppreference.com
| Definiert in der Header-Datei <cmath> |
||
| float nanf( const char* arg ); |
(1) | (seit C++11) |
| double nan ( const char* arg ); |
(2) | (seit C++11) |
| long double nanl( const char* arg ); |
(3) | (seit C++11) |
Konvertiert die Zeichenkette arg in den entsprechenden Quiet-NaN-Wert, als ob std::strtof, std::strtod oder std::strtold aufgerufen worden wäre.
1) Der Aufruf std::nanf("n-char-sequence"), wobei n-char-sequence eine Sequenz von Ziffern, ASCII-Buchstaben und Unterstrichen ist, ist äquivalent zum Aufruf von std::strtof("NAN(n-char-sequence)", (char**)nullptr);.
Der Aufruf std::nanf("") ist äquivalent zum Aufruf von std::strtof("NAN()", (char**) nullptr);.
Der Aufruf std::nanf("string"), wobei string weder eine n-char-sequence noch ein leerer String ist, ist äquivalent zum Aufruf von std::strtof("NAN", (char**) nullptr);.
Inhalt |
[bearbeiten] Parameter
| arg | - | Schmalbandiger Zeichenkettenliteral, der den Inhalt eines NaN identifiziert |
[bearbeiten] Rückgabewert
Der Quiet-NaN-Wert, der der identifizierenden Zeichenkette arg entspricht, oder null, wenn die Implementierung keine Quiet NaNs unterstützt.
Wenn die Implementierung IEEE Gleitkommaarithmetik (IEC 60559) unterstützt, unterstützt sie auch Quiet NaNs.
[bearbeiten] Fehlerbehandlung
Diese Funktion unterliegt keinen der Fehlerbedingungen, die in math_errhandling angegeben sind.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <cmath> #include <cstdint> #include <cstring> #include <iostream> 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"; }
Mögliche Ausgabe
nan("1") = nan (7ff0000000000001)
nan("2") = nan (7ff0000000000002)[bearbeiten] Siehe auch
| (C++11) |
prüft, ob die gegebene Zahl NaN ist (Funktion) |
| (C++11) |
evaluiert zu einem leisen NaN vom Typ float (Makrokonstante) |
| [static] |
identifiziert Gleitkommatypen, die den speziellen Wert "quiet not-a-number" (NaN) darstellen können (öffentliche statische Member-Konstante von std::numeric_limits<T>) |
| [static] |
identifiziert Gleitkommatypen, die den speziellen Wert "signaling not-a-number" (NaN) darstellen können (öffentliche statische Member-Konstante von std::numeric_limits<T>) |
| [static] |
gibt einen stillen NaN-Wert des gegebenen Gleitkommatyps zurück (öffentliche statische Member-Funktion von std::numeric_limits<T>) |
| [static] |
gibt einen Signal-NaN-Wert des gegebenen Gleitkommatyps zurück (öffentliche statische Member-Funktion von std::numeric_limits<T>) |
| C-Dokumentation für nanf, nan, nanl
| |