Next: , Previous: Rounding Functions, Up: Arithmetic Functions


20.8.4 Remainder Functions

The functions in this section compute the remainder on division of two floating-point numbers. Each is a little different; pick the one that suits your problem.

— Function: double fmod (double numerator, double denominator)
— Function: float fmodf (float numerator, float denominator)
— Function: long double fmodl (long double numerator, long double denominator)

Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

These functions compute the remainder from the division of numerator by denominator. Specifically, the return value is numerator - n * denominator, where n is the quotient of numerator divided by denominator, rounded towards zero to an integer. Thus, fmod (6.5, 2.3) returns 1.9, which is 6.5 minus 4.6.

The result has the same sign as the numerator and has magnitude less than the magnitude of the denominator.

If denominator is zero, fmod signals a domain error.

— Function: double drem (double numerator, double denominator)
— Function: float dremf (float numerator, float denominator)
— Function: long double dreml (long double numerator, long double denominator)

Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

These functions are like fmod except that they round the internal quotient n to the nearest integer instead of towards zero to an integer. For example, drem (6.5, 2.3) returns -0.4, which is 6.5 minus 6.9.

The absolute value of the result is less than or equal to half the absolute value of the denominator. The difference between fmod (numerator, denominator) and drem (numerator, denominator) is always either denominator, minus denominator, or zero.

If denominator is zero, drem signals a domain error.

— Function: double remainder (double numerator, double denominator)
— Function: float remainderf (float numerator, float denominator)
— Function: long double remainderl (long double numerator, long double denominator)

Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

This function is another name for drem.