プログラミングでinfに遭遇した場合について


プログラミングを行っているうちに分母が0であるか否かを判断していないため、結果値がinfまたは-infになることがよくあります.この問題に対して、根本的に根絶すると、除法を行う際に分母が0であるか否かを判断し、その後、1つの数がinfまたは-infであるか否かを判断する必要がある場合は、以下の方法で判断することができます.
一、C++のnumeric_を利用するLimitsが実現
C++のヘッダファイルincludeには、各タイプの最値があります.
intに対応する最大最小値:std::numeric_limits::min()  std::numeric_limits::max()
floatに対応する最大最小値:std::numeric_limits::min()  std::numeric_limits::max()
では、valueを数えるには、次のように判断することができます.
valueがintの場合:
if( (value < std::numeric_limits::min()) || ( value > std::numeric_limits::max() ) )
		printf("the value is inf or -inf
");

valueがfloatの場合:
if( (value < std::numeric_limits::min()) || ( value > std::numeric_limits::max() ) )
		printf("the value is inf or -inf
");

その他の状況は類似している
二、inf自身の特性を利用する
infの数値に対しては,自身の任意の操作が依然として自身であることを見出したので,簡単な判断条件が得られる.
if ( value + 1 == value - 1)
		printf("the value is inf or -inf
");

あとは自分の必要に応じて自分で使用状況を選びましょう!