drem
同时计算浮点x/y的余数。
即x = n * y + d,其中n为整数,|d| < y / 2;当|d| = |y| / 2时,要保证n为偶数。
接口定义
C interface:
float dremf(float x, float y);
double drem(double x, double y);
参数
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
x |
|
表示输入数据的浮点值。 |
输入 |
y |
|
表示输入数据的浮点值。 |
输入 |
返回值
- 正常区间:返回x/y的余数。
- 特殊区间:
- 输入|x|或者|y|为0或nan,输出nan。
- 输入|x|为0,|y|不为0或者nan,输出±0。
依赖
C: "km.h"
示例
C interface:
// typical usage double x1 = 3.0, x2 = 3.5; double y1 = 4.0, y2 = 4.5; // special handling double e = INFINITY, f = -INFINITY, g = NAN; // print result printf("/*\n"); printf(" * drem(3.0, 4.0) = %.15f\n", drem(x1, y1)); printf(" * drem(3.5, 4.5) = %.15f\n", drem(x2, x2)); printf(" * drem(4.5, 4.5) = %.15f\n", drem(y2, y2)); printf(" * drem(INFINITY, 0) = %.15f\n", drem(e, 0.0f)); printf(" * drem(-INFINITY, 3.0) = %.15f\n", drem(f, x1)); printf(" * drem(NAN, 3.0) = %.15f\n", drem(g, x1)); printf(" * drem(NAN, INFINITY) = %.15f\n", drem(g, e)); printf(" **/\n"); /* * drem(3.0, 4.0) = -1.000000000000000 * drem(3.5, 4.5) = 0.000000000000000 * drem(4.5, 4.5) = 0.000000000000000 * drem(INFINITY, 0) = nan * drem(-INFINITY, 3.0) = nan * drem(NAN, 3.0) = nan * drem(NAN, INFINITY) = nan **/
父主题: 取余函数