nexttoward Function

Determines the next value after x in the direction of y that can be represented by the type of the function.

Include

<math.h>

Prototype

double nexttoward(double x, long double y);

Arguments

x
the original value
y
the target value as a long double

Return Value

Determines the next value after x in the direction of y that can be represented by the type of the function. The value of y converted to the type of the function is returned if x equals y.

Remarks

A range error might occur if the magnitude of x is the largest finite value representable in the type and the result is infinite or not representable in the type.

Example

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

int main(void)
{
  double x, z;
  long double y;

  x = 150.0;
  y = 300.0;
  z = nexttoward(x, y);
  printf("The next representable value after %f in the direction of %Lf is %.10f\n", x, y, z);

  x = 150.0;
  y = -300.0;
  z = nexttoward(x, y);
  printf("The next representable value after %f in the direction of %Lf is %.10f\n", x, y, z);

}

Example Output

The next representable value after 150.000000 in the direction of 300.000000 is 150.0000000000
The next representable value after 150.000000 in the direction of -300.000000 is 150.0000000000