Standards
Standards / Extensions |
C or C++ |
Dependencies |
C/C++ DFP |
both |
z/OS® V1.8 |
Format
#define __STDC_WANT_DEC_FP__
#include <math.h>
_Decimal32 nextafterd32(_Decimal32 x, _Decimal32 y);
_Decimal64 nextafterd64(_Decimal64 x, _Decimal64 y);
_Decimal128 nextafterd128(_Decimal128 x, _Decimal128 y);
_Decimal32 nextafter(_Decimal32 x, _Decimal32 y); /* C++ only */
_Decimal64 nextafter(_Decimal64 x, _Decimal64 y); /* C++ only */
_Decimal128 nextafter(_Decimal128 x, _Decimal128 y);/* C++ only */
General description
The nextafter() function
computes the next representable decimal floating-point value following
x in
the direction of
y. Thus, if
y is
less than
x, nextafter() returns the largest
representable decimal floating-point number less than
x.
Notes: - To use IEEE decimal floating-point, the hardware must have the
Decimal Floating-Point Facility installed.
- These functions work in IEEE decimal floating-point format. See
"IEEE Decimal Floating-Point" for more information.
Returned value
The nextafter() functions
return the next representable value following x in
the direction of y.
If... |
Then... |
x equals y |
copysign(x,y)
is returned. |
x is less than y |
the next representable value after x is
returned. |
x is greater than y |
the largest representable decimal floating-point
number less than x is returned. |
x or y is
a NaN |
either x or y is
returned. |
Example
⁄* CELEBN07
This example illustrates the nextafterd128() function.
*⁄
#define __STDC_WANT_DEC_FP__
#include <math.h>
#include <stdio.h>
int main(void)
{
_Decimal128 x = 123456789.70DL, dir = 123456790.00DL, z;
z = nextafterd128(x, dir);
printf("The next number after %DDf in the direction %DDf\n is %DDf\n",
x, dir, z);
}