Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How should one compare floats in OCaml?

In OCaml, comparing Integer 0 with Integer 0 returns true; however, comparing Float 0. to Float 0. returns false:

# 0 == 0;;
- : bool = true
# 0. == 0.;;
- : bool = false

How does one compare floats correctly?

like image 947
UnSat Avatar asked Mar 18 '23 13:03

UnSat


1 Answers

Don't use ==, which is a specialized "physical equality". Use = for everyday code.

# 0 = 0;;
- : bool = true
# 0.0 = 0.0;;
- : bool = true

For inequality, use <>. The != operator is for "physical inequality", which should also be avoided like the plague in everyday code.

# 0 <> 0;;
- : bool = false
# 0.0 <> 0.0;;
- : bool = false
like image 200
Jeffrey Scofield Avatar answered Mar 20 '23 02:03

Jeffrey Scofield