Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      NAN

      From cppreference.com
      <c‎ |numeric‎ |math
       
       
       
      Common mathematical functions
      Functions
      Basic operations
      (C99)
      (C99)
      (C99)
      (C99)(C99)(C99)(C23)
      Maximum/minimum operations
      (C99)
      (C99)
      Exponential functions
      (C23)
      (C99)
      (C99)
      (C23)
      (C23)

      (C99)
      (C99)(C23)
      (C23)
      (C23)
      Power functions
      (C99)
      (C23)
      (C23)

      (C99)
      (C23)
      (C23)
      Trigonometric and hyperbolic functions
      (C23)
      (C23)
      (C23)
      (C23)
      (C99)
      (C99)
      (C99)
      Nearest integer floating-point
      (C99)(C99)(C99)
      (C23)(C23)(C23)(C23)
      Floating-point manipulation
      (C99)(C99)
      (C99)(C23)
      (C99)
      Narrowing operations
      (C23)
      (C23)
      (C23)
      (C23)
      (C23)
      (C23)
      Quantum and quantum exponent
      Decimal re-encoding functions
      Total order and payload functions
      Classification
      Error and gamma functions
      (C99)
      (C99)
      (C99)
      (C99)
      Types
      Macro constants
      Special floating-point values
      NANDEC_NAN
      (C99)(C23)
      Arguments and return values
      Error handling
      Fast operation indicators
       
      Defined in header<math.h>
      #define NAN /*implementation defined*/
      (since C99)

      The macroNAN expands to a constant expression of typefloat, which evaluates to a quiet not-a-number (QNaN) value. If the implementation does not support QNaNs, this macro constant is not defined.

      The style used to print a NaN is implementation-defined.

      Contents

      [edit]Notes

      There are many different NaN values, differentiated by their payloads and their sign bits. The contents of the payload and the sign bit of the NaN generated by the macroNAN are implementation-defined.

      [edit]Example

      Show style used to print a NaN and IEEE format.

      Run this code
      #include <inttypes.h>#include <math.h>#include <stdint.h>#include <stdio.h>#include <string.h> int main(void){constdouble f= NAN;uint64_t fn;memcpy(&fn,&f,sizeof f);printf("NAN:   %f %"PRIx64"\n", f, fn);}

      Possible output:

      NAN:   nan 7ff8000000000000

      [edit]References

      • C23 standard (ISO/IEC 9899:2024):
      • 7.12/5 NAN (p: TBD)
      • F.10/11/13 NAN (p: TBD)
      • C17 standard (ISO/IEC 9899:2018):
      • 7.12/5 NAN (p: TBD)
      • F.10/11/13 NAN (p: TBD)
      • C11 standard (ISO/IEC 9899:2011):
      • 7.12/5 NAN (p: 232)
      • F.10/11/13 NAN (p: 518)
      • C99 standard (ISO/IEC 9899:1999):
      • 7.12/5 NAN (p: 213)
      • F.9/11/13 NAN (p: 455)

      [edit]See also

      (C99)(C99)(C99)
      returns a NaN (not-a-number)
      (function)[edit]
      (C99)
      checks if the given number is NaN
      (function macro)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=c/numeric/math/NAN&oldid=150797"

      [8]ページ先頭

      ©2009-2025 Movatter.jp