다음을 통해 공유


첫 번째 값과 두 번째 값의 양의 차이를 결정합니다.

구문

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 x>y의 경우
0 x<= y인 경우

그렇지 않으면 다음 오류 중 하나를 반환할 수 있습니다.

문제 Return
오버플로 범위 오류 +HUGE_VAL, +HUGE_VALF 또는 +HUGE_VALL
언더플로 범위 오류 올바른 값(반올림 후)
x 또는 y가 NaN입니다. NaN

오류는 _matherr에 지정된 대로 보고됩니다.

설명

C++는 오버로딩을 허용하기 때문에 fdimfloat 형식을 사용하고 반환하는 long double의 오버로드를 호출할 수 있습니다. C 프로그램에서 이 함수를 호출하기 위해 <tgmath.h> 매크로를 사용하지 않는 한, fdim은 항상 double을 취하고 반환합니다.

<tgmath.h>fdim() 매크로를 사용하는 경우 인수 형식에 따라 선택되는 함수 버전이 결정됩니다. 자세한 내용은 형식-제네릭 수학을 참조하세요.

NaN 처리를 제외하고 이 함수는 fmax(x - y, 0)과 같습니다.

요구 사항

함수 C 헤더 C++ 헤더
<math.h> <cmath>
fdim 매크로 <tgmath.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

참고 항목

사전순 함수 참조