Standards / Extensions | C or C++ | Dependencies |
---|---|---|
C/C++ DFP | both | z/OS® V1.8 |
#define __STDC_WANT_DEC_FP__
#include <math.h>
_Bool samequantumd32(_Decimal32 x, _Decimal32 y);
_Bool samequantumd64(_Decimal64 x, _Decimal64 y);
_Bool samequantumd128(_Decimal128 x, _Decimal128 y);
The samequantum functions determine if the representation exponents of x and y are the same. If both x and y are NaN or infinity, they have the same representation exponents. If exactly one operand is infinity or exactly one operand is NaN, they do not have the same representation exponents. The samequantum functions raise no floating point exceptions.
Argument | Description |
---|---|
x | First input value |
y | Second input value |
The samequantum functions return true when x and y have the same representation exponents, and false otherwise.
⁄* CELEBS72
This example illustrates the samequantumd64() function
*⁄
#define __STDC_WANT_DEC_FP__
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
_Decimal64 a1 = strtod64("1.23" , NULL);
_Decimal64 a2 = strtod64("0.01" , NULL);
_Decimal64 b1 = strtod64("1.234" , NULL);
_Decimal64 b2 = strtod64("0.01" , NULL);
_Decimal64 c1 = strtod64("1.000" , NULL);
_Decimal64 c2 = strtod64("1.00" , NULL);
_Decimal64 d1 = strtod64("0.000" , NULL);
_Decimal64 d2 = strtod64("0.00" , NULL);
printf( "x=%-8.2DF y=%-8.2DF samequantum=%d\n"
"x=%-8.3DF y=%-8.2DF samequantum=%d\n"
"x=%-8.3DF y=%-8.2DF samequantum=%d\n"
"x=%-8.3DF y=%-8.2DF samequantum=%d\n"
, a1, a2, (int)samequantumd64(a1, a2)
, b1, b2, (int)samequantumd64(b1, b2)
, c1, c2, (int)samequantumd64(c1, c2)
, d1, d2, (int)samequantumd64(d1, d2)
);
return 0;
}