fdim , fdimf , fdiml , fdimd32, fdimd64和 fdimd128 子例程
用途
计算两个浮点数之间的正差。
语法
#include <math.h>
double fdim (x, y)
double x;
double y;
float fdimf (x, y)
float x;
float y;
long double fdiml (x, y)
long double x;
long double y;
_Decimal32 fdimd32 (x, y);
_Decimal32 x;
_Decimal32 y;
_Decimal64 fdimd64 (x, y);
_Decimal64 x;
_Decimal64 y;
_Decimal128 fdimd128 (x, y);
_Decimal128 x;
_Decimal128 y; 描述
弗迪姆, 菲迪姆夫, 弗迪姆尔, fdimd32, fdimd64和 fdimd128 子例程确定它们的自变量之间的正差。 如果 X 参数的值大于 Y 参数的值,那么会返回 X - Y 。 如果 X 小于或等于 Y,那么 0 返回 + 0。
要检查错误情况的应用程序应该将 错误号 全局变量设置为零,并在调用这些子例程之前调用 费克莱雷克斯普(FE_ALL_EXCEPT)。 返回时,如果 错误号 的值为非零或 费泰斯特西普(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) 的值为非零,那么表示发生错误。
参数
| 项 | 描述 |
|---|---|
| X | 指定要计算的值。 |
| y | 指定要计算的值。 |
返回值
在成功完成时, 弗迪姆, 菲迪姆夫, 弗迪姆尔, fdimd32, fdimd64和 fdimd128 子例程将返回正差值。
如果 X-Y 是正数且溢出,那么会发生范围错误,并且 弗迪姆, 菲迪姆夫, 弗迪姆尔, fdimd32, fdimd64和 fdimd128 子例程分别返回 HUGE_VAL, HUGE_VALF, HUGE_VALL, HUGE_VAL_D32, HUGE_VAL_D64 和 HUGE_VAL_D128 宏的值。
如果 x-y 为正流和下流,那么可能会发生范围错误,并返回 0.0 。
如果x或y为NaN,返回NaN。