Float nie zmienia się, gdy dodaję do niego 0.1

Jestem całkiem początkujący na c. Więc kiedy piszę małe demo gry, napotykam naprawdę dziwny problem.

 void testC()
 {
     float a = 825300160;
     float b = a + 0.1;
     assert(a != b);
 }

Powyższe stwierdzenie assert nie może przejść. Bardzo dziwny.
Moje środowisko to mac os ml. gcc 4.2.1

questionAnswers(3)

yourAnswerToTheQuestion