Strano problema nel confrontare i galleggianti nell’objective-C

Ad un certo punto in un algoritmo ho bisogno di confrontare il valore float di una proprietà di una class con un float. Quindi faccio questo:

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

dove currentValue è una proprietà float.

Tuttavia, quando ho l’uguaglianza e self.scroller.currentValue = 0.1 l’istruzione if non è soddisfatta e il codice non viene eseguito! Ho scoperto che posso risolvere il problema gettando 0.1 a float. Come questo:

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

Funziona bene

Qualcuno può spiegare al mio perché questo sta accadendo? 0.1 è definito come doppio di default o qualcosa del genere?

Grazie.