# 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 ` `#include ` `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 ```

My Personal Notes arrow_drop_up

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.