Isnan - C++ Reference

cplusplus.com
  • TUTORIALS
  • REFERENCE
  • ARTICLES
  • FORUM

C++

  • Tutorials
  • Reference
  • Articles
  • Forum

Reference

  • C library:

    • <cassert> (assert.h)
    • <cctype> (ctype.h)
    • <cerrno> (errno.h)
    • C++11 <cfenv> (fenv.h)
    • <cfloat> (float.h)
    • C++11 <cinttypes> (inttypes.h)
    • <ciso646> (iso646.h)
    • <climits> (limits.h)
    • <clocale> (locale.h)
    • <cmath> (math.h)
    • <csetjmp> (setjmp.h)
    • <csignal> (signal.h)
    • <cstdarg> (stdarg.h)
    • C++11 <cstdbool> (stdbool.h)
    • <cstddef> (stddef.h)
    • C++11 <cstdint> (stdint.h)
    • <cstdio> (stdio.h)
    • <cstdlib> (stdlib.h)
    • <cstring> (string.h)
    • C++11 <ctgmath> (tgmath.h)
    • <ctime> (time.h)
    • C++11 <cuchar> (uchar.h)
    • <cwchar> (wchar.h)
    • <cwctype> (wctype.h)
  • Containers:

    • C++11 <array>
    • <deque>
    • C++11 <forward_list>
    • <list>
    • <map>
    • <queue>
    • <set>
    • <stack>
    • C++11 <unordered_map>
    • C++11 <unordered_set>
    • <vector>
  • Input/Output:

    • <fstream>
    • <iomanip>
    • <ios>
    • <iosfwd>
    • <iostream>
    • <istream>
    • <ostream>
    • <sstream>
    • <streambuf>
  • Multi-threading:

    • C++11 <atomic>
    • C++11 <condition_variable>
    • C++11 <future>
    • C++11 <mutex>
    • C++11 <thread>
  • Other:

    • <algorithm>
    • <bitset>
    • C++11 <chrono>
    • C++11 <codecvt>
    • <complex>
    • <exception>
    • <functional>
    • C++11 <initializer_list>
    • <iterator>
    • <limits>
    • <locale>
    • <memory>
    • <new>
    • <numeric>
    • C++11 <random>
    • C++11 <ratio>
    • C++11 <regex>
    • <stdexcept>
    • <string>
    • C++11 <system_error>
    • C++11 <tuple>
    • C++11 <type_traits>
    • C++11 <typeindex>
    • <typeinfo>
    • <utility>
    • <valarray>

<cmath> (math.h)

  • functions

    • abs
    • acos
    • C++11 acosh
    • asin
    • C++11 asinh
    • atan
    • atan2
    • C++11 atanh
    • C++11 cbrt
    • ceil
    • C++11 copysign
    • cos
    • cosh
    • C++11 erf
    • C++11 erfc
    • exp
    • C++11 exp2
    • C++11 expm1
    • fabs
    • C++11 fdim
    • floor
    • C++11 fma
    • C++11 fmax
    • C++11 fmin
    • fmod
    • C++11 fpclassify
    • frexp
    • C++11 hypot
    • C++11 ilogb
    • C++11 isfinite
    • C++11 isgreater
    • C++11 isgreaterequal
    • C++11 isinf
    • C++11 isless
    • C++11 islessequal
    • C++11 islessgreater
    • C++11 isnan
    • C++11 isnormal
    • C++11 isunordered
    • ldexp
    • C++11 lgamma
    • C++11 llrint
    • C++11 llround
    • log
    • log10
    • C++11 log1p
    • C++11 log2
    • C++11 logb
    • C++11 lrint
    • C++11 lround
    • modf
    • C++11 nan
    • C++11 nanf
    • C++11 nanl
    • C++11 nearbyint
    • C++11 nextafter
    • C++11 nexttoward
    • pow
    • C++11 remainder
    • C++11 remquo
    • C++11 rint
    • C++11 round
    • C++11 scalbln
    • C++11 scalbn
    • C++11 signbit
    • sin
    • sinh
    • sqrt
    • tan
    • tanh
    • C++11 tgamma
    • C++11 trunc
  • macro constants

    • HUGE_VAL
    • C++11 HUGE_VALF
    • C++11 HUGE_VALL
    • C++11 INFINITY
    • C++11 math_errhandling
    • NAN
  • types

    • C++11 double_t
    • float_t
  • Reference
  • <cmath>
  • isnan
macro/function <cmath> <ctgmath> isnan
macroisnan(x)
functionbool isnan (float x);bool isnan (double x);bool isnan (long double x);
Is Not-A-Number Returns whether x is a NaN (Not-A-Number) value. The NaN values are used to identify undefined or non-representable values for floating-point elements, such as the square root of negative numbers or the result of 0/0. In C, this is implemented as a macro that returns an int value. The type of x shall be float, double or long double. In C++, it is implemented with function overloads for each floating-point type, each returning a bool value.

Parameters

x A floating-point value.

Return value

A non-zero value (true) if x is a NaN value; and zero (false) otherwise.

Example

123456789101112 /* isnan example */ #include <stdio.h> /* printf */ #include <math.h> /* isnan, sqrt */ int main() { printf ("isnan(0.0) : %d\n",isnan(0.0)); printf ("isnan(1.0/0.0) : %d\n",isnan(1.0/0.0)); printf ("isnan(-1.0/0.0) : %d\n",isnan(-1.0/0.0)); printf ("isnan(sqrt(-1.0)): %d\n",isnan(sqrt(-1.0))); return 0; }
Output:
isnan(0.0) : 0 isnan(1.0/0.0) : 0 isnan(-1.0/0.0) : 0 isnan(sqrt(-1.0)): 1

See also

isfiniteIs finite value (macro)isinfIs infinity (macro/function)isnormalIs normal (macro/function)fpclassifyClassify floating-point value (macro/function) Home page | Privacy policy© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s Spotted an error? contact us

Tag » Arduino Isnan Function