fmodf Function

Calculates the remainder of x/y as a single precision value.

Include

<math.h>

Prototype

float fmodf(float x, float y);

Arguments

x
a double precision floating-point value
y
a double precision floating-point value

Return Value

Returns the remainder of x divided by y.

Remarks

If y = 0, a domain error occurs. If y is non-zero, the result will have the same sign as x and the magnitude of the result will be less than the magnitude of y.

Example

#include <math.h>
#include <stdio.h>
#include <errno.h>

int main(void)
{
  float x,y,z;

  errno = 0;
  x = 7.0F;
  y = 3.0F;
  z = fmodf(x, y);
  if(errno)
    perror("Error");
  printf("For fmodf(%f, %f) the remainder is"
          " %f\n\n", x, y, z);

  errno = 0;
  x = -5.0F;
  y = 3.0F;
  z = fmodf(x, y);
  if(errno)
    perror("Error");
     printf("For fmodf(%f, %f) the remainder is %f\n", x, y, z);

  errno = 0;
  x = 5.0F;
  y = -3.0F;
  z = fmodf(x, y);
  if(errno)
    perror("Error");
  printf("For fmodf(%f, %f) the remainder is %f\n", x, y, z);

  errno = 0;
  x = 5.0F;
  y = -5.0F;
  z = fmodf (x, y);
  if(errno)
    perror("Error");
  printf("For fmodf (%f, %f) the remainder is %f\n", x, y, z);

  errno = 0;
  x = 7.0F;
  y = 0.0F;
  z = fmodf(x, y);
  if(errno)
    perror("Error");
  printf("For fmodf(%f, %f) the remainder is %f\n", x, y, z);

  errno = 0;
  x = 7.0F;
  y = 7.0F;
  z = fmodf(x, y);
  if(errno)
    perror("Error");
  printf("For fmodf(%f, %f) the remainder is %f\n", x, y, z);
}

Example Output

For fmodf (7.000000, 3.000000) the remainder is 1.000000
For fmodf (-5.000000, 3.000000) the remainder is -2.000000
For fmodf (5.000000, -3.000000) the remainder is 2.000000
For fmodf (5.000000, -5.000000) the remainder is 0.000000
Error: domain error
For fmodf (7.000000, 0.000000) the remainder is nan
For fmodf (7.000000, 7.000000) the remainder is 0.000000