double
の値がNaN
または#INF
の場合、動作を切り離したいと思います。 NaN
を検出するために、私は何#INF
についてC++ doubleが#INFであるかどうかテスト
doubleVal != doubleVal
テスト? doubleVal
が#INF
の場合、このテストは成立しますか?
double
の値がNaN
または#INF
の場合、動作を切り離したいと思います。 NaN
を検出するために、私は何#INF
についてC++ doubleが#INFであるかどうかテスト
doubleVal != doubleVal
テスト? doubleVal
が#INF
の場合、このテストは成立しますか?
C++ 11を使用していない場合は、<cmath>
の代わりに<boost/math/special_functions/fpclassify.hpp>
と対応する名前空間の変更が必要です。
#include <cmath> // or <boost/math/special_functions/fpclassify.hpp>
// ...
if(isinf(num)){
// ...
}
が、あなたはおそらくそれがより明確だかの理由だけでは、NaNをチェックするために 'のstd :: isnan'を使用する必要があります。 – James
あなたは以下の機能を取得する浮動小数点データ型
#include <boost/math/special_functions/fpclassify.hpp>
に対処するためのきちんとしたツールを持ってブースト中にheader-only library存在もあります:
template <class T> bool isfinite(T z);
template <class T> bool isinf(T t);
template <class T> bool isnan(T t);
template <class T> bool isnormal(T t);
私はこの代替ソリューションが好きです – octoback