/* * rint() test program * * Compile on gcc using: * gcc -o test test.c -lm */ #include #include double pg_rint(double x) { double f, n = 0.; f = modf(x, &n); if (x > 0.) { if (f > .5) n += 1.; } else if (x < 0.) { if (f < -.5) n -= 1.; } return n; } int main() { printf("rint(-1.5): %f\n", rint(-1.5)); printf("pg_rint(-1.5): %f\n", pg_rint(-1.5)); printf("rint(1.5): %f\n", rint(1.5)); printf("pg_rint(1.5): %f\n", pg_rint(1.5)); }