[#43713] Re: 演算子の優先順位(was: Re: irb と python のバグ?) — "きむらこういち" <hogemuta@...>

木村です。

20 messages 2007/07/14
[#43715] Re: 演算子の優先順位(was: Re: irb — TunTun-m <tntn@...> 2007/07/14

bc では次式の結果は 0.81 ではなく 0.8 になります。

[ruby-list:43710] irb と python のバグ? ⑱Ⅹ鴎 ス 乙 闥 ⑱偽

From: TunTun-m <tntn@...>
Date: 2007-07-14 08:30:42 UTC
List: ruby-list #43710
つんつん といいます。(本名:うえま)

irb と python のバグではないか、と考え戸惑っています。


-2^2^3  == (-2**2**3) を bc と irb と python で実行してみました。

---
bc
-2^2^3
256
---
---
irb(main):001:0> -2**2**3
=> -256
---
---
python
 >>> -2**2**3
-256
---

考察してみます。
-2^2^3 = -2^8 = (-2)*(-2)*(-2)*(-2)*(-2)*(-2)*(-2)*(-2) = 256
256 が正しい気がします。(ほんと??かな)

考察が正しいとして

-2^9 == -2**9 を実行してみます。

---
bc
-2^9
-512
---
---
irb(main):001:0> -2**9
=> -512
---
---
python
 >>> -2**9
-512
---

以上二つの考察からして bc が正しくて irb,  python は間違っているように思います。(ほんと??かな)

念のため市販の関数電卓で計算してみました。
'-', '2', '=', 'y^x', '8'  '='              結果: 256
'-', '2',        'y^x', '8'  '='              結果: -256

'2'  の後に  '='  を打つか打たないかで結果が違います。

よく分からなくなってしまいました。

市販の電卓は別として
bc と 'irb  python'  どちらが正しいのでしょうか?

------------------
横道にそれる

bc  では
+1+1+1 は、エラーになって
-1-1-1  は  -3  になります。 

+1+1+1 も計算できない bc の方が バグ?なのかな
-------------------


In This Thread