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;

描述

弗迪姆菲迪姆夫弗迪姆尔fdimd32fdimd64fdimd128 子例程确定它们的自变量之间的正差。 如果 X 参数的值大于 Y 参数的值,那么会返回 X - Y 。 如果 X 小于或等于 Y,那么 0 返回 + 0。

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

参数

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

返回值

在成功完成时, 弗迪姆菲迪姆夫弗迪姆尔fdimd32fdimd64fdimd128 子例程将返回正差值。

如果 X-Y 是正数且溢出,那么会发生范围错误,并且 弗迪姆菲迪姆夫弗迪姆尔fdimd32fdimd64fdimd128 子例程分别返回 HUGE_VALHUGE_VALFHUGE_VALLHUGE_VAL_D32HUGE_VAL_D64HUGE_VAL_D128 宏的值。

如果 x-y 为正流和下流,那么可能会发生范围错误,并返回 0.0 。

如果xy为NaN,返回NaN。