# nextafter() and nexttoward() in C/C++

How would you solve below problems in C/C++?

• What is the smallest representable positive floating point number in C/C++?
• What is the largest representable negative floating point number in C/C++?
• Given a positive floating point number x, find the largest representable floating point value smaller than x?

nextafter(x, y) and nexttoward(x.y)
In C and C++, both nextafter(x, y)  and nexttoward(x.y)  are similar functions defined in math.h or cmath header files. They both return next representable value after x in the direction of y. nexttoward() has more precise second parameter y.

The following program demonstrates the concept :

```// C program to demonstrate use of nextafter() and nexttoward()
#include <stdio.h>
#include <math.h>
int main ()
{
// using nextafter
printf ("Smallest positive floating point number : %e\n",
nextafter(0.0, 1.0));
printf ("Largest negative floating point number :%e\n",
nextafter(0.0, -1.0));
printf ("Largest positive floating point number smaller than 0.5 : %e\n",
nextafter(0.5, 0.0));

// using nexttoward
printf ("Smallest positive floating point number : %e\n",
nexttoward(0.0, 1.0));
printf ("Largest negative floating point number : %e\n",
nexttoward(0.0, -1.0));
printf ("Largest positive floating point number smaller than 0.5 : %e\n",
nexttoward(0.5, 0.0));
return (0);
}
```

Output:

```nextafter first value greater than zero: 4.940656e-324
nextafter first value less than zero: -4.940656e-324
nexttoward first value greater than zero: 4.940656e-324
nexttoward first valnextafter first value greater than zero: 4.940656e-324
nextafter first value less than zero: -4.940656e-324
nexttoward first value greater than zero: 4.940656e-324
nexttoward first value less than zero: -4.940656e-324 ue less than zero: -4.940656e-324 ```

# GATE CS Corner    Company Wise Coding Practice

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.
1 Average Difficulty : 1/5.0
Based on 1 vote(s)