Я хочу проверить, является ли значение с плавающей запятой "почти" кратным 32. Например. 64.1 "почти" делится на 32, и 63,9.
Сейчас я делаю это:
#define NEARLY_DIVISIBLE 0.1f
float offset = fmodf( val, 32.0f ) ;
if( offset < NEARLY_DIVISIBLE )
{
// its near from above
}
// if it was 63.9, then the remainder would be large, so add some then and check again
else if( fmodf( val + 2*NEARLY_DIVISIBLE, 32.0f ) < NEARLY_DIVISIBLE )
{
// its near from below
}
Есть ли лучший способ сделать это?