の絶対値が欲しい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
どうして?
a の絶対値を取得する他の方法はありますlong double
か?
編集:
std::abs
最終的に仕事をしました。しかし、std::fabs
しませんでした。コメントで指摘されたように、これは非準拠の実装が原因である可能性があります。