std::nextafter, std::nexttoward

From cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
Common mathematical functions
Functions
Basic operations
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Exponential functions
(C++11)
(C++11)
(C++11)
(C++11)
Power functions
(C++11)
(C++11)
Trigonometric and hyperbolic functions
(C++11)
(C++11)
(C++11)
Error and gamma functions
(C++11)
(C++11)
(C++11)
(C++11)
Nearest integer floating point operations
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Floating point manipulation functions
(C++11)(C++11)
(C++11)
(C++11)
nextafternexttoward
(C++11)(C++11)
(C++11)
Classification/Comparison
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Macro constants
(C++11)(C++11)(C++11)(C++11)(C++11)
 
Defined in header <cmath>
float       nextafter( float from, float to );
(1) (since C++11)
double      nextafter( double from, double to );
(2) (since C++11)
long double nextafter( long double from, long double to );
(3) (since C++11)
Promoted    nextafter( Arithmetic from, Arithmetic to );
(4) (since C++11)
float       nexttoward( float from, long double to );
(5) (since C++11)
double      nexttoward( double from, long double to );
(6) (since C++11)
long double nexttoward( long double from, long double to );
(7) (since C++11)
double      nexttoward( Integral from, long double to );
(8) (since C++11)

Returns the next representable value of from in the direction of to. If from equals to to, to is returned.

4) If any argument has integral type, it is cast to double. If any other argument is long double, then the return type is long double, otherwise it is double

[edit] Parameters

from, to - floating point values

[edit] Return value

the next representable value of from in the direction of to.

[edit] Example

#include <cmath>
#include <iostream>
#include <iomanip>
 
int main()
{
    std::cout << "0.1 lies between the doubles " << std::setprecision(100) << '\n'
              << 0.1 << '\n' << " and\n"
              << std::nextafter(0.1, 0) << '\n';
}

Output:

0.1 lies between the doubles 
0.1000000000000000055511151231257827021181583404541015625
 and
0.09999999999999999167332731531132594682276248931884765625