ソフトウェア開発したい日記

「面白い!」と思った頭の体操や、数学の問題を載せていきます
その他ロードバイクででかけた先の写真や、ソフト開発のメモ等

謎な「-1.#IND00」の例外処理的なこと

2010年07月09日 18時26分08秒 | ソフト開発日記
ちょっと無理な計算をさせたとき、
double型の変数に「-1.#IND00」という値が入ったりしてた。

変数に「-1.#IND00」が入っちゃったときの例外処理的なことをしてみたメモ。
もう謎すぎて、色々試しても全然うまくいかなかったので
かなり強引なやり方で突破。

その問題のdouble型の変数をtmpとする。
今回のプログラムでは、tmpには-10~+10くらいの値が入る。
そこで、このことを利用し次のようにしてみる。

  if(tmp - 100 <0){   //tmpの値が正常ならここに流れ込む。
  }
  else{
  //ここに、「-1.#IND00」が入っちゃったときの処理
  }

無理やりすぎる気がするけど、これで何とかできました。
怖いのは、tmpに「-1.#IND00」が入っているとき

if(tmp - 100 <0){}= 0){}

のどっちにもひっかからないという点。
比較した時点で、どんな比較を行ってもfalseが入っちゃうってことでしょうか?

うーんわかんない。