Почему переменная с плавающей запятой перестает увеличиваться на 16777216 в C #?

float a = 0;
while (true)
{
    a++;
    if (a > 16777216)
        break; // Will never break... a stops at 16777216
}

Может кто-нибудь объяснить мне, почему значение с плавающей запятой перестает увеличиваться в 16777216 в этом коде?

Редактировать:

Или еще проще:

float a = 16777217; // a becomes 16777216

Ответы на вопрос(4)

Ваш ответ на вопрос