From: Kenta Murata Date: 2010-02-07T18:06:35+09:00 Subject: [ruby-dev:40341] Re: patch for ruby-core:17472 むらたです。 On 2010/02/07, at 16:06, Yusuke ENDOH wrote: > 遠藤です。 > > 2008年7月7日18:23 wanabe : >> 2008/07/06 15:36 Nobuyoshi Nakada : >>> BigDecimal('1').div(BigDecimal('3E-9')) の結果の有効数字が一桁に >>> なるというのは、もしかして仕様どおりの動作なんじゃないでしょうか。 >>> 左辺も右辺も、(あるいはレシーバも引数も)有効数字一桁ですから。 >> >> ありがとうございます。なるほど。 >> >> BigDecimal('1').divmod(BigDecimal('3E-9')) #=> [0.3E9, 0.1E0] >> >> 上のように余りが割る数を上回るのが理解できず >> バグかと思ったのですが、そういうことでしたら納得しました。 > > > これはやはりバグだと思います。 わたしもバグだと思います。 BigDecimal#divmod の挙動は Float#divmod に合わせて、 - 商は整数 - 除数 > 0 ⇒ 0 <= 剰余 < 除数 - 除数 < 0 ⇒ 除数 < 剰余 <= 0 と決めた方が良いと思います。 -- Kenta Murata OpenPGP FP = FA26 35D7 4F98 3498 0810 E0D5 F213 966F E9EB 0BCC 本を書きました!! 『Ruby 逆引きレシピ』 http://www.amazon.co.jp/dp/4798119881/mrkn-22 E-mail: mrkn@mrkn.jp twitter: http://twitter.com/mrkn/ blog: http://d.hatena.ne.jp/mrkn/