**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
"
``` `, ` ` ` `nextafter(0.0, 1.0)); ` ` ` `printf` `(` ```
"Largest negative floating point number :%e
"
``` `, ` ` ` `nextafter(0.0, -1.0)); ` ` ` `printf` `(` ```
"Largest positive floating point number smaller than 0.5 : %e
"
``` `, ` ` ` `nextafter(0.5, 0.0)); ` ` ` ` ` `// using nexttoward ` ` ` `printf` `(` ```
"Smallest positive floating point number : %e
"
``` `, ` ` ` `nexttoward(0.0, 1.0)); ` ` ` `printf` `(` ```
"Largest negative floating point number : %e
"
``` `, ` ` ` `nexttoward(0.0, -1.0)); ` ` ` `printf` `(` ```
"Largest positive floating point number smaller than 0.5 : %e
"
``` `, ` ` ` `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

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above

## leave a comment

## 0 Comments