Есть такой код:
int32_t i;
for (i = 0; i <= 1000; i++)
{
func(i / 1000.0);
}
А в func такое:
void func(float pos)
{
if ((pos > 1.0) || (pos < 0.0))
return;
uint32_t normpos = pos * UINT32_MAX;
...
}
Вопрос - почему на последней итерации (i == 1000) normpos == 0? При этом на проверке входного параметра ([1 => pos => 0]) не вылетает.