You are comparing a float to a double. the literal 1.7
is a double.
You've stored that in a float, which might have less precision than a double, thus the me == 1.7
is comparing 1.7 as a float(promoted to a double) to 1.7 as a double.
In this case, me == 1.7f
should make them compare as equal, or changing me
to a double double me = 1.7;
In the general case though, you'd want equality to be compared using an epsilon as @duffymo shows.
Also, Obligatory read.