Я хочу иметь абсолютное значение 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
?
Edit:
std::abs
в конечном счете, сделал работу. Однако std::fabs
этого не сделал. Как отмечалось в комментариях, это может быть связано с несоответствующей реализацией.
Вы проверили в публичных заголовках, если функция реализована, или вы только проверили документы? – JVApen
Только документы, считая это стандартным. Видимо, я ошибся (?) – Stingery
Может быть, попробуйте 'std :: fabs' или' std :: abs'? –