IDLEからの次の出力は、私には意味がありません。
>>> a=-1.0
>>> a**(1/3)
1.0
>>> a==-1.0
True
>>> -1.0**(1/3)
-1.0
2つの理論的に同等のステートメントが異なる結果を返すのはなぜですか?Python(2.7)__pow__
は、これが結果であるdoubleのメソッドをどのように処理していますか?整数でも試してみたところ、同じ結果が得られました。関数への入力の符号を計算__pow__
して結果にコピーする以外に、これを修正するにはどうすればよいですか?