2016-08-09 21 views
2

long double의 절대 값을 갖고 싶습니다.C++ fabs (long double) 컴파일러 경고

<cmath> 또는 <math.h>에 따르면, 다음은 볼 수 있습니다 :

 double fabs (double x); 
    float fabs (float x); 
    long double fabs (long double x); 

그러나 long double ld = fabs(static_cast<long double>(0));을 할 때, 나는 (LLVM 7.1) 경고 다음 얻을 :

Absolute value function 'fabs' given an argument of type 'long double' but has parameter of type 'double' which may cause truncation of value

어떻게?

long double의 절대 값을 얻는 다른 방법은 있습니까?

편집 :

std::abs가 결국 일을했다. 그러나 std::fabs하지 않았습니다. 주석에서 지적했듯이 이것은 부적합한 구현으로 인한 것일 수 있습니다.

+0

공용 헤더에서 기능이 구현되었는지 확인 했습니까? 아니면 문서 만 확인 했습니까? – JVApen

+0

표준이라고 가정하고 문서 만. 외관상으로는, 나는 틀렸다 (?) – Stingery

+1

아마'std :: fabs' 또는'std :: abs'를 시도 할 것인가? –

답변