プログラムdeタマゴ

nodamushiの著作物は、文章、画像、プログラムにかかわらず全てUnlicenseです

二つの数の正負が同じかどうかを判定する

 二数a,bの正負が一致しているかどうかは数学的にはa*b\ge0で与えられる。

 しかし、プログラム的にはこれではうまくいかないことがある。aとbの絶対値がそれなりに大きな値の時だと、オーバーフローを起こしてしまうからだ。

 バグってたところがそれが原因だった。うっかり数学の癖でかけ算するのはやめた方が良いということを痛感した。

 普通にa\ge0 == b\ge0で計算しましょう。