を使用すると、abs
とfabs
の動作が異なると思いmath.h
ます。しかし、 and だけをcmath
使用する場合、 orstd::abs
を使用する必要がありますstd::fabs
かfabs
? それとも、これは定義されていませんか?
67377 次
4 に答える
126
std::abs
C++ では、常に;を使用するだけで十分です。すべての数値型に対してオーバーロードされています。
C では、整数でのみ機能し、浮動小数点値abs
が必要です。fabs
これらは C++ で (すべての C ライブラリと共に) 利用できますが、それらを使用する必要はありません。
于 2010-06-25T13:06:30.683 に答える
23
fabs
fordouble
とfloat
引数を使用しても問題ありません。私がこれを好むのは、誤って を取り除いた場合でも、浮動小数点入力の動作が同じままであることを保証するためstd::
ですabs
。
の代わりabs
にstd::abs
. using namespace std;
が推論すると思ってstd::abs
いましたが、そうではなく、代わりに C バージョンを使用していました。
とにかく、意図を明確に文書化する方法として、浮動小数点入力のfabs
代わりに使用するのが良いと思います。abs
于 2012-12-09T22:44:46.957 に答える
13
std::fabs
浮動小数点入力を明示的に推奨するもう 1 つの理由があります。
<cmath> を含めるのを忘れた場合は、std::abs(my_float_num)
代わりstd::abs(int)
にstd::abs(float)
. 気づきにくい。
于 2016-07-14T07:19:25.853 に答える