# Julia test if number is NaN

**URL:** <https://discourse.julialang.org/t/julia-test-if-number-is-nan/25642>\
**Category:** New to Julia\
**Tags:** question\
**Created:** [June 25, 2019, 9:10am UTC](https://discourse.julialang.org/t/julia-test-if-number-is-nan/25642 "2019-06-25T09:10:40Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Luigi\_Marongiu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/luigi_marongiu/32/7909_2.png) [@Luigi\_Marongiu](https://discourse.julialang.org/u/Luigi_Marongiu)\
**Post date:** [June 25, 2019, 9:10am UTC](https://discourse.julialang.org/t/julia-test-if-number-is-nan/25642/1 "2019-06-25T09:10:40Z")

</div>

Hello,  
I have a variable that is non a number:

```julia
julia> Bs
NaN

```

and I have written a test to check for it:

```julia
julia> if Bs == NaN
           println("NON A NUMBER! Bs = ", Bs)
       else
           println("OK, Bs is ", Bs)
       end
OK, Bs is NaN

julia>

```

Since NaN is a number

```julia
julia> typeof(NaN)
Float64
julia> NaN isa Number
true

```

how can I check if a variable is not a number? If I check if NaN is a digit a get an error:

```julia
julia> isdigit(NaN)
ERROR: MethodError: no method matching isdigit(::Float64)
Closest candidates are:
  isdigit(::AbstractChar) at strings/unicode.jl:347
Stacktrace:
 [1] top-level scope at none:0

```

this is not elegant and might cause problems in the script. Is there a proper way ot check if a variable is NaN?  
Thank you

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [June 25, 2019, 9:16am UTC](https://discourse.julialang.org/t/julia-test-if-number-is-nan/25642/2 "2019-06-25T09:16:46Z")

</div>

> [@Luigi\_Marongiu](#):
>
> how can I check if a variable is not a number?

`isnan`

---

<div class="post-metadata">

**Author:** ![Luigi\_Marongiu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/luigi_marongiu/32/7909_2.png) [@Luigi\_Marongiu](https://discourse.julialang.org/u/Luigi_Marongiu)\
**Post date:** [June 25, 2019, 9:18am UTC](https://discourse.julialang.org/t/julia-test-if-number-is-nan/25642/3 "2019-06-25T09:18:57Z")

</div>

Yep! So simple! Thank you.

```julia
julia> if isnan(Bs)
           println("NON A NUMBER! Bs = ", Bs)
       else
           println("OK, Bs is ", Bs)
       end
NON A NUMBER! Bs = NaN

```

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [June 25, 2019, 9:24am UTC](https://discourse.julialang.org/t/julia-test-if-number-is-nan/25642/4 "2019-06-25T09:24:57Z")

</div>

Note that you can generally find something like this with eg `apropos("NaN")`.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [June 25, 2019, 10:32am UTC](https://discourse.julialang.org/t/julia-test-if-number-is-nan/25642/5 "2019-06-25T10:32:25Z")

</div>

> [@Luigi\_Marongiu](#):
>
> OK, Bs is NaN

That happened because, by definition of NaN, nothing is equal to a NaN, not even itself

```julia
julia> Bs = NaN;

julia> Bs == NaN
false

julia> NaN == NaN
false

```

---

<div class="post-metadata">

**Author:** ![Gus\_Hart](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gus_hart/32/6987_2.png) [@Gus\_Hart](https://discourse.julialang.org/u/Gus_Hart)\
**Post date:** [April 2, 2021, 11:03am UTC](https://discourse.julialang.org/t/julia-test-if-number-is-nan/25642/6 "2021-04-02T11:03:50Z")

</div>

I didn’t know about `apropos`. Cool!
