fmod , fmodf , fmodl , fmodd32, fmodd64和 fmodd128 子例程

用途

计算浮点的余数值。

语法

#include <math.h>

float fmodf (x, y)
float x;
float y;

long double fmodl (x, y)
long double x, y;

double fmod (x, y)
double x, y;
_Decimal32 fmodd32 (x, y)
_Decimal32 x, y;

_Decimal64 fmodd64 (x, y)
_Decimal64 x, y;

_Decimal128 fmodd128 (x, y)
_Decimal128 x, y;

描述

弗莫德夫弗莫德尔菲莫德fmodd32fmodd64fmodd128 子例程返回 X 除法的浮点余数 (以 Y为单位)。

要检查错误情况的应用程序必须将 错误号 全局变量设置为零并调用 费克莱雷克斯普(FE_ALL_EXCEPT) ,然后才能调用这些子例程。 返回时,如果 错误号 是非零值,或者 费泰斯特西普(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) 是非零值,那么表示发生了错误。

参数

描述
X 指定要计算的值。
y 指定要计算的值。

返回值

弗莫德夫弗莫德尔菲莫德fmodd32fmodd64fmodd128 子例程会返回值 X- *Y。 对于整数 ,如果 Y 为非零值,那么结果将具有与 X 相同的符号,并且量级小于 Y的量级。

如果正确的值将导致下流,并且不可表示,那么可能会发生范围错误,并返回 0.0 。

如果xy为NaN,返回NaN。

如果 y 为零,那么将发生域错误,并返回 NaN 。

如果 x 是无限的,那么将发生域错误,并返回 NaN 。

如果 X 为 ± 0 且 Y 不为零,那么返回 ± 0。

如果 X 不是无限的,并且 Y 是 ± Inf ,那么会返回 X

如果正确的值将导致下溢,并且是可表示的,那么可能会发生范围错误并返回正确的值。

如果正确的值为零,那么舍入错误可能会导致返回值与 0.0不同。 根据 xy的值以及舍入方式,在此情况下,返回值的量级可能接近 0.0 或接近 y 的量级。 可以通过使用十进制浮点子例程 (fmodd32fmodd64fmodd128) 来避免这种情况。