標準
標準/拡張機能 |
C/C++ |
依存項目 |
C/C++ DFP |
両方 |
z/OS® V1.8 |
形式
#define __STDC_WANT_DEC_FP__
#include <math.h>
_Decimal32 nexttowardd32(_Decimal32 x, _Decimal128 y);
_Decimal64 nexttowardd64(_Decimal64 x, _Decimal128 y);
_Decimal128 nexttowardd128(_Decimal128 x, _Decimal128 y);
_Decimal32 nexttoward(_Decimal32 x, _Decimal128 y); /*C++ only*/
_Decimal64 nexttoward(_Decimal64 x, _Decimal128 y); /*C++ only*/
_Decimal128 nexttoward(_Decimal128 x, _Decimal128 y);/*C++ only*/
機能説明
nexttoward() ファミリーの関数は、
y の方向で
x の後にくる、次の表現可能な 10 進数浮動小数点値を計算します。
注 : - IEEE 10 進数浮動小数点を使用するためには、ハードウェアに 10 進数浮動小数点機能
がインストールされている必要があります。
- これらの関数は、IEEE 10 進数浮動小数点形式で機能します。詳細は
「IEEE 10 進数浮動小数点」を参照してください。
戻り値
正常に実行された場合は、y の方向で x の後にくる、次に表現可能な値が指定の形式で戻されます。
条件 |
結果 |
x は y に等しい |
y (x 型の) が戻されます。 |
x は y より小さい |
x の後、次に表現可能な値が戻されます。 |
x は y より大きい |
x より小さい、表現可能な最大の 10 進数浮動小数点数が戻されます。 |
x は有限で、該当する関数値はオーバーフロー |
範囲エラーが発生し、
±HUGE_VAL_D32、
±HUGE_VAL_D64、
または ±HUGE_VAL_D128 (x と同じ符号が付く) が nexttowardd32()、
nexttowardd64() または nexttowardd128() からそれぞれ戻されます。 |
x は y と等しくなく、該当するサブルーチン値は非正規、0、またはアンダーフロー |
範囲エラーが発生し、該当する関数値 (表現可能な場合) または 0.0 が戻されます。 |
x または y は NaN |
NaN が戻されます。 |
例
⁄* CELEBN08
This example illustrates the nexttowardd32() function.
*⁄
#define __STDC_WANT_DEC_FP__
#include <math.h>
#include <stdio.h>
static void try_nt(_Decimal32 x, _Decimal128 y)
{
_Decimal32 r = nexttowardd32(x, y);
printf("nexttowardd32(%12.12HG, %12.12DDG) = % 12.12HG¥n", x, y, r);
return;
}
int main(void)
{
try_nt( 2.000000DF , 2.00000001DL );
try_nt(-2.000000DF , -2.00000001DL );
try_nt( 2.000000DF , 2.00000000DL );
try_nt( 2.000000DF , 1.99999999DL );
try_nt(-2.000000DF , -1.99999999DL );
try_nt( 9.999999E+96DF, 9.99999999E+96DL);
try_nt( 1.000000E-95DF, 0.99999999E-95DL);
return 0;
}