From: "山崎雄介" Date: 2007-07-16T23:36:17+09:00 Subject: [ruby-list:43734] Re: 演算子の優先順位(was: Re: irb 山崎(ゆ)です。 > 0.9 x 0.9 = 0.8 ならば > 0.1 x 0.1 = 0.0 になるということでしょうか? 現実の有効数字のルールを適用するならば、 0.9 x 0.9 = 0.81 =~ 0.8 0.1 x 0.1 = 0.01 bc的有効数字のルールを適用するならば、 0.9 x 0.9 = 0.81 =~ 0.8 0.9 x 0.9 = 0.01 =~ 0.0 ということになるのだと思います。bc的有効数字のルールらしきものとして、 マニュアルに以下のような記述がありました。 http://www.linux.or.jp/JM/html/GNU_bc/man1/bc.1.html > 数には length と scale という 2 つの属性があります。 length は 10 進での > 有効桁数で、scale は小数点以下の 10 進での有効桁数です。例えば、 > .000001 は、lengthが 6 で、scale も 6 です。 > 1935.000 は、lengthが 7 で、scale が 3 です。 これによるとbcでの0.01は (length = 2, scale = 2)ということのようです。 したがって、有効桁数1に丸められた結果、0.01 ~= 0.0になるのでしょう。 --- Yusuke Yamasaki