IDLE 的以下输出对我来说毫无意义。
>>> a=-1.0
>>> a**(1/3)
1.0
>>> a==-1.0
True
>>> -1.0**(1/3)
-1.0
为什么两个理论上等效的语句返回不同的结果?Python(2.7)如何处理__pow__
结果为双打的方法?我也只是用整数尝试了它并收到了相同的结果。除了计算__pow__
函数输入的符号并将其复制到结果之外,我该如何解决这个问题?
IDLE 的以下输出对我来说毫无意义。
>>> a=-1.0
>>> a**(1/3)
1.0
>>> a==-1.0
True
>>> -1.0**(1/3)
-1.0
为什么两个理论上等效的语句返回不同的结果?Python(2.7)如何处理__pow__
结果为双打的方法?我也只是用整数尝试了它并收到了相同的结果。除了计算__pow__
函数输入的符号并将其复制到结果之外,我该如何解决这个问题?