函数
<cmath> <ctgmath>

fdim

     double fdim  (double x     , double y);      float fdimf (float x      , float y);long double fdiml (long double x, long double y);
     double fdim (double x     , double y);      float fdim (float x      , float y);long double fdim (long double x, long double y);     double fdim (Type1 x      , Type2 y);       // additional overloads
正差
返回 xy正差

如果 x>y,则该函数返回 x-y,否则返回零。

头文件 <tgmath.h> 提供了此函数的类型通用宏版本。
在此头文件中(<cmath>)提供了额外的重载,用于其他 算术类型Type1Type2)的组合:这些重载在计算前有效地将参数转换为 double,除非至少有一个参数的类型是 long double(在这种情况下,两个参数都将转换为 long double)。

参数

x, y
计算差值的值。

返回值

xy正差

示例

1
2
3
4
5
6
7
8
9
10
11
12
/* fdim example */
#include <stdio.h>      /* printf */
#include <math.h>       /* fdim */

int main ()
{
  printf ("fdim (2.0, 1.0) = %f\n", fdim(2.0,1.0));
  printf ("fdim (1.0, 2.0) = %f\n", fdim(1.0,2.0));
  printf ("fdim (-2.0, -1.0) = %f\n", fdim(-2.0,-1.0));
  printf ("fdim (-1.0, -2.0) = %f\n", fdim(-1.0,-2.0));
  return 0;
}

输出

fdim (2.0, 1.0) = 1.000000
fdim (1.0, 2.0) = 0.000000
fdim (-2.0,-1.0) = 0.000000
fdim (-1.0,-2.0) = 1.000000


另见