|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Defined in header <math.h> | ||
float nanf(constchar* arg); | (1) | (since C99) |
double nan(constchar* arg); | (2) | (since C99) |
longdouble nanl(constchar* arg); | (3) | (since C99) |
_Decimal32 nand32(constchar* arg); | (4) | (since C23) |
_Decimal64 nand64(constchar* arg); | (5) | (since C23) |
_Decimal128 nand128(constchar* arg); | (6) | (since C23) |
Converts the implementation-defined character stringarg into the corresponding quiet NaN value, as if by calling the appropriate parsing functionstrtoX, as follows:
The functions returning decimal floating point values are declared if and only the implementation predefines | (since C23) |
Contents |
| arg | - | narrow character string identifying the contents of a NaN |
The quiet NaN value that corresponds to the identifying stringarg or zero if the implementation does not support quiet NaNs.
If the implementation supports IEEE floating-point arithmetic (IEC 60559), it also supports quiet NaNs.
This function is not subject to any of the error conditions specified inmath_errhandling.
#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);}
Possible output:
nan("1") = nan (7ff8000000000001)nan("2") = nan (7ff8000000000002)nan("0xF") = nan (7ff800000000000f)(C99) | checks if the given number is NaN (function macro)[edit] |
(C99) | evaluates to a quiet NaN of typefloat (macro constant)[edit] |
C++ documentation fornanf,nan,nanl | |