첫 번째 값과 두 번째 값의 양의 차이를 결정합니다.
구문
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
두 번째 값입니다.
반환 값
x
와 y
의 양의 차이를 반환합니다.
반환 값 | 시나리오 |
---|---|
x-y |
x >y 의 경우 |
0 | x <= y 인 경우 |
그렇지 않으면 다음 오류 중 하나를 반환할 수 있습니다.
문제 | Return |
---|---|
오버플로 범위 오류 | +HUGE_VAL, +HUGE_VALF 또는 +HUGE_VALL |
언더플로 범위 오류 | 올바른 값(반올림 후) |
x 또는 y 가 NaN입니다. |
NaN |
오류는 _matherr
에 지정된 대로 보고됩니다.
설명
C++는 오버로딩을 허용하기 때문에 fdim
및 float
형식을 사용하고 반환하는 long double
의 오버로드를 호출할 수 있습니다. C 프로그램에서 이 함수를 호출하기 위해 <tgmath.h> 매크로를 사용하지 않는 한, fdim
은 항상 double
을 취하고 반환합니다.
<tgmath.h>fdim()
매크로를 사용하는 경우 인수 형식에 따라 선택되는 함수 버전이 결정됩니다. 자세한 내용은 형식-제네릭 수학을 참조하세요.
NaN 처리를 제외하고 이 함수는 fmax(x - y, 0)
과 같습니다.
요구 사항
함수 | C 헤더 | C++ 헤더 |
---|---|---|
<math.h> | <cmath> | |
fdim 매크로 |
<tgmath.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.