2024年12月02日

C++ の 0除算 などなど。

C++において
・整数演算の0除算→例外が発生する。
・浮動小数点の0除算→NaN(Not a Number)を返す。

NaNの検出
以下、double value; において。

その1)std::isnanを使う
#include <cmath>
if( std::isnan( value ) == true ) printf("NaNである");

その2)NaN は比較で自分自身と等しくないことを利用する
if( value != value ) printf("NaNである");

※NaNは(自分自身との比較を含む)すべての比較は常にFalseになるようだ。
posted by すら at 15:36| プログラミングなこと