Share via


fdimfdimffdiml

判斷第一個和第二個值之間的正差。

語法

double fdim(
   double x,
   double y
);

float fdim(
   float x,
   float y
); //C++ only

long double fdim(
   long double x,
   long double y
); //C++ only

float fdimf(
   float x,
   float y
);

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

#define fdim(X) // Requires C11 or higher

參數

x
第一個值。

y
第二個值。

傳回值

傳回 xy 之間的正差:

傳回值 案例
x-y if x>y
0 如果 x<= y

否則,可能會傳回下列一項錯誤:

問題 傳回
溢位範圍錯誤 +HUGE_VAL、+HUGE_VALF 或 +HUGE_VALL
反向溢位範圍錯誤 正確的值 (四捨五入後)
xy 是 NaN NaN

_matherr 中的指定回報錯誤。

備註

因為 C++ 允許多載,所以您可以呼叫採用並傳回 fdimfloat 類型的 long double 的多載。 在 C 程式中,除非您使用 <tgmath.h> 巨集來呼叫此函式,否則 fdim 一律會採用並傳回 double

如果您使用 <tgmath.h>fdim() 巨集,則引數的型別會決定選取哪一個函式版本。 如需詳細資料,請參閱型別泛型數學

除了 NaN 處理,此函式相當於 fmax(x - y, 0)

需求

函式 C 標頭 C++ 標頭
fdimfdimffdiml <math.h> <cmath>
fdim 巨集 <tgmath.h>

如需相容性詳細資訊,請參閱相容性

另請參閱

依字母順序排列的函式參考
fmaxfmaxffmaxl
abslabsllabs_abs64