fmod(3) Library Functions Manual fmod(3) fmod fmodf fmodl - (libm -lm) #include double fmod(double x, double y); float fmodf(float x, float y); long double fmodl(long double x, long double y); glibc ( feature_test_macros(7)): fmodf() fmodl(): _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || /* Since glibc 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE x y. x - n * y n x / y . fmod() : z = fmod(x, y); if (z < 0) z += fabs(y); fmod(fmod(x, y) + y, y) fmod() . x - n*y n x y. x y NaN NaN. x NaN. y NaN. x +0 (-0) y +0 (-0). math_error(7) . : : x errno EDOM ( BUGS). (FE_INVALID). : y errno EDOM. (FE_INVALID). attributes(7). +------------+------------------------------------+--------------------+ || | | +------------+------------------------------------+--------------------+ |fmod(), | | MT-Safe | |fmodf(), | | | |fmodl() | | | +------------+------------------------------------+--------------------+ C11, POSIX.1-2008. C99 POSIX.1-2001. double SVr4 4.3BSD C89. glibc 2.10 glibc errno EDOM x . fmod(372, 360) 12. fmod(-372, 360) -12. fmod(-372, -360) -12. remainder(3) 3 . . : . 6.18 8 2026 fmod(3)