From: Yukihiro Matsumoto Date: 2007-06-24T23:50:41+09:00 Subject: [ruby-dev:31045] Re: 0**2 causes division by zero まつもと ゆきひろです In message "Re: [ruby-dev:31043] Re: 0**2 causes division by zero" on Sun, 24 Jun 2007 14:59:25 +0900, Nobuyoshi Nakada writes: |At Sat, 23 Jun 2007 23:57:11 +0900, |Yusuke ENDOH wrote in [ruby-dev:31040]: |> ruby 1.9 で 0**2 を評価すると SIGFPE で落ちます。 | |すいません。チェックを後回しにして忘れてました。 | |> こんな感じでしょうか。ついでに余計な最適化も入れてみましたが、 |> 余計でしたらはずしてください。 | |yのチェックはfix_pow()でやってますから、不要だと思います。xもそっ |ちでしたほうがいいかも。 | |ついでにint_round()を見ていたのですが、ndigits==LONG_MINのとき |に時間がかかりすぎて返ってこなくなりますね。エラーにするか0を返 |すようにしたほうがよさそうです。 | |> # そういえば 0**0 は 1 でいいんでしょうか。 | |まぁいいんじゃないでしょうか。 うむ、徹底してますね。こっちの方がよさそうですからコミットし てください。