compute a floating-point modulus
#include <math.h> double fmod( double x, double y );
The fmod() function computes the floating-point remainder of x/y, even if the quotient x/y is not representable.
The fmod() function returns the value x - (i * y), for some integer i such that, if y is non-zero, the result has the same sign as x, and magnitude less than the magnitude of y. If the value of y is zero, then the value returned is zero.
#include <stdio.h> #include <math.h> void main() { printf( "%f\n", fmod( 4.5, 2.0 ) ); printf( "%f\n", fmod( -4.5, 2.0 ) ); printf( "%f\n", fmod( 4.5, -2.0 ) ); printf( "%f\n", fmod( -4.5, -2.0 ) ); }
produces the output
0.500000 -0.500000 0.500000 -0.500000
ANSI
Math