Sin fin para bucle con flotador

Considere el siguiente código:

for (float i = 0f; i < int.MaxValue; i++)
{
    // Some code
}

Que se supone que se repite0 aint.MaxValue (231-1), pero no lo hace. Una vezi alcanzó 224, i++ ya no funciona por una razón que soy totalmente incapaz de entender.

En la ventana Inmediata de VS he intentado esto:

>i
16777216.0
>i + 1
16777216.0 // ???
>i == i + 1
false // as expected, but a lack of consistency with upper statement
>i + 2
16777218.0

¿Por qué se comporta así? ¿Qué tiene de especial 2?24+1?

Respuestas a la pregunta(1)

Su respuesta a la pregunta