计算x在y方向的下个浮点数。
C interface:
float nexttowardf(float x, long double y);
double nexttoward(double x, long double y);
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
x |
|
表示输入数据的浮点值。 |
输入 |
y |
|
表示输入数据的浮点值。 |
输入 |
返回x的在y方向上的下一个浮点值。
C: "km.h"
// typical usage double x1 = 1.0, x2 = 1.0; double y1 = 1.0, y2 = 1.1; double z1 = 1.0, z2 = 0.9; // special handling double e = INFINITY, f = -INFINITY, g = NAN; // print result printf("\t/*\n"); printf("\t * nexttoward(1.0, 1.0) = %a\n", nexttoward(x1, (long double)y1)); printf("\t * nexttoward(1.0, 1.1) = %a\n", nexttoward(y1, (long double)y2)); printf("\t * nexttoward(1.0, 0.9) = %a\n", nexttoward(z1, (long double)z2)); printf("\t * nexttoward(INFINITY, 0) = %a\n", nexttoward(e, 0.0)); printf("\t * nexttoward(-INFINITY, 1.0) = %a\n", nexttoward(f, x1)); printf("\t * nexttoward(NAN, 1.0) = %a\n", nexttoward(g, x1)); printf("\t * nexttoward(NAN, INFINITY) = %a\n", nexttoward(g, e)); printf("\t */\n"); return 0; /* * nexttoward(1.0, 1.0) = 0x1p+0 * nexttoward(1.0, 1.1) = 0x1.0000000000001p+0 * nexttoward(1.0, 0.9) = 0x1.fffffffffffffp-1 * nexttoward(INFINITY, 0) = 0x1.fffffffffffffp+1023 * nexttoward(-INFINITY, 1.0) = -0x1.fffffffffffffp+1023 * nexttoward(NAN, 1.0) = nan * nexttoward(NAN, INFINITY) = nan */