Things that are binary fractions (1/2, 1/4, etc) would store exactly (assuming they fit) so there's no floating-point inaccuracies here. Are you sure you didn't get your 2.25/1.5 and your 2.5/1.25 backwards? (Since that is exactly 2 remainder 0.)
Code:
tabstop@ubuntu:~/helping$ cat divide.c
#include <stdio.h>
#include <math.h>
int main(void) {
int quotient;
double a;
a = remquo(2.25, 1.5, "ient);
printf("Quotient is %d with remainder %g.\n", quotient, a);
a = remquo(2.5, 1.25, "ient);
printf("Quotient is %d with remainder %g.\n", quotient, a);
return 0;
}
tabstop@ubuntu:~/helping$ ./divide
Quotient is 2 with remainder -0.75.
Quotient is 2 with remainder 0.