UnSat
UnSat

Reputation: 1407

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?

Upvotes: 4

Views: 4878

Answers (1)

Jeffrey Scofield
Jeffrey Scofield

Reputation: 66823

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

Upvotes: 7

Related Questions