Life is full of comparisons, we must earn more next year than now. We are considered lesser than our boss because he owns an expensive car, or has more money. Programming follows real life, comparisons are important part of programming too. Let’s see how its done in Julia.

The notebook for this blog is available here https://gitlab.com/data-science-with-julia/code/-/blob/master/comparisons.ipynb. So fire your Jupyter lab and let’s get started.

First let’s see if 1 is greater than 2, for checking that we use greater than symbol >

1 > 2


Output:

false


Looks like 1 is less than 2 in Julia world. Now let’s check if 2 is greater than 1, and it looks so as from below example:

2 > 1


Output:

true


Now let’s see if 1 is greater than 1:

1 > 1


Output:

false


Looks not, and it looks as though 1 is equal to 1 as we can see below. The >= checks if the left hand side number is either greater or equal to the right hand side number.

1 >= 1


Output:

true


Now let’s use the less than sign and try to do something. Let’s check if 5 is less than 3 using the less than < operator

5 < 3


Output:

false


Now lets check if 3 is less than 5

3 < 5


Output:

true


Now let’s see if 3 is less than or equal to 5 using the <= operator. Since 3 is less than 5 it returns true.

3 <= 5


Output:

true


Now rather than putting = sign after <, we will put it before < and check.

3 =< 5


Output:

syntax: "<" is not a unary operator

Stacktrace:

 top-level scope at In:1

 execute_code(::String, ::String) at /home/karthikeyan/.julia/packages/IJulia/a1SNk/src/execute_request.jl:27

 execute_request(::ZMQ.Socket, ::IJulia.Msg) at /home/karthikeyan/.julia/packages/IJulia/a1SNk/src/execute_request.jl:86

 #invokelatest#1 at ./essentials.jl:710 [inlined]

 invokelatest at ./essentials.jl:709 [inlined]

 eventloop(::ZMQ.Socket) at /home/karthikeyan/.julia/packages/IJulia/a1SNk/src/eventloop.jl:8



It fails.

Now let’s check if 3 is less than or equal to 3.

3 <= 3


Output:

true


Now let’s check of 3 equals 3, for that we use the double equal to == operator as shown.

3 == 3


Output:

true


Now look at the statement below,we are checking if 3 == 3.0, that is 3 on the left side is an integer and 3.0 on the right side is a floating point number or a Real number. These two pieces of data are stored differently in Julia in different locations, yet Julia is smart enough to compare them and say they are equal. If you want to know more about floating point and how they are stored in computers, look here https://en.wikipedia.org/wiki/Floating-point_arithmetic

3 == 3.0


Output:

true


If we want to check if two values are stored in same location in computers memory, we can use the triple equal sign === as shown. 3 is stored in different location than 3.0 hence Julia says they both are not equal.

3 === 3.0


Output:

false


Try this one

a = 5
b = 5
a === b



What do you infer from it?

Now there is a special value called NaN in Julia, it means not a number. Now it turns out that two NaN’s are not equal

NaN == NaN


Output:

false


But it turns out that in Julia all the things that are NaN point to a same address located in the RAM, so that passes the === test as shown:

NaN === NaN


Output:

true


The last operator we are going to see in the blog is not equal to, denoted by !=, so let’s check if 4 is not equal to 5

4 != 5


Output:

true


Turns out true. Now let’s check if 4 is not equal to 4:

4 != 4


Output:

false