Float não muda quando eu adiciono 0.1 nele

Eu sou um novato para c. Então, quando escrevo uma pequena demonstração de jogo, enfrento um problema realmente estranho.

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

A afirmação de afirmação acima não pode ser aprovada. Muito estranho.
Meu ambiente é mac os ml. gcc 4.2.1