ちょっと無理な計算をさせたとき、
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が入っちゃうってことでしょうか?
うーんわかんない。
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が入っちゃうってことでしょうか?
うーんわかんない。