nan, nanf, nanl, nand32, nand64, nand128
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Défini dans l'en-tête
<math.h>
|
||
|
float
nanf
(
const
char
*
arg
)
;
|
(1) | (depuis C99) |
|
double
nan
(
const
char
*
arg
)
;
|
(2) | (depuis C99) |
|
long
double
nanl
(
const
char
*
arg
)
;
|
(3) | (depuis C99) |
|
_Decimal32 nand32
(
const
char
*
arg
)
;
|
(4) | (depuis C23) |
|
_Decimal64 nand64
(
const
char
*
arg
)
;
|
(5) | (depuis C23) |
|
_Decimal128 nand128
(
const
char
*
arg
)
;
|
(6) | (depuis C23) |
Convertit la chaîne de caractères définie par l'implémentation
arg
en la valeur NaN silencieuse correspondante, comme en appelant la fonction d'analyse appropriée
strtoX
, comme suit :
- L'appel nan ( "n-char-sequence" ) , où n-char-sequence est une séquence de chiffres, de lettres latines et de tirets bas, est équivalent à l'appel /*strtoX*/ ( "NAN(n-char-sequence)" , ( char ** ) NULL ) ; .
- L'appel nan ( "" ) est équivalent à l'appel /*strtoX*/ ( "NAN()" , ( char ** ) NULL ) ; .
- L'appel nan ( "string" ) , où string n'est ni une n-char-sequence ni une chaîne vide, est équivalent à l'appel /*strtoX*/ ( "NAN" , ( char ** ) NULL ) ; .
|
Les fonctions renvoyant des valeurs décimales à virgule flottante sont déclarées si et seulement si l'implémentation prédéfinit
|
(depuis C23) |
Table des matières |
Paramètres
| arg | - | chaîne de caractères étroite identifiant le contenu d'un NaN |
Valeur de retour
La valeur NaN silencieuse qui correspond à la chaîne d'identification
arg
ou zéro si l'implémentation ne prend pas en charge les NaN silencieux.
Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559), elle prend également en charge les NaN silencieux.
Gestion des erreurs
Cette fonction n'est soumise à aucune des conditions d'erreur spécifiées dans math_errhandling .
Exemple
#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); }
Sortie possible :
nan("1") = nan (7ff8000000000001)
nan("2") = nan (7ff8000000000002)
nan("0xF") = nan (7ff800000000000f)
Références
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.12.11.2 Les fonctions nan (p: 186-187)
-
- F.10.8.2 Les fonctions nan (p: 386)
- Norme C11 (ISO/CEI 9899:2011) :
-
- 7.12.11.2 Les fonctions nan (p: 256)
-
- F.10.8.2 Les fonctions nan (p: 529)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.12.11.2 Les fonctions nan (p: 237)
-
- F.9.8.2 Les fonctions fabs (p: 465)
Voir aussi
|
(C99)
|
vérifie si le nombre donné est NaN
(macro fonction) |
|
(C99)
|
évalue à un NaN silencieux de type
float
(constante macro) |
|
Documentation C++
pour
nanf
,
nan
,
nanl
|
|