"Nearly divisible"
        Posted  
        
            by bobobobo
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by bobobobo
        
        
        
        Published on 2010-03-22T04:10:24Z
        Indexed on 
            2010/03/22
            4:21 UTC
        
        
        Read the original article
        Hit count: 421
        
I want to check if a floating point value is "nearly" a multiple of 32. E.g. 64.1 is "nearly" divisible by 32, and so is 63.9.
Right now I'm doing this:
#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
}
Got a better way to do this?
© Stack Overflow or respective owner