Strange problem comparing floats in objective-C

Viewed 27850

At some point in an algorithm I need to compare the float value of a property of a class to a float. So I do this:

if (self.scroller.currentValue <= 0.1) {
}

where currentValue is a float property.

However, when I have equality and self.scroller.currentValue = 0.1 the if statement is not fulfilled and the code not executed! I found out that I can fix this by casting 0.1 to float. Like this:

if (self.scroller.currentValue <= (float)0.1) {
}

This works fine.

Can anyone explain to my why this is happening? Is 0.1 defined as a double by default or something?

Thanks.

7 Answers
Related