[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:3447

From: "pypypy567 (py _)" <redmine@r...>
Date: Sun, 16 Dec 2012 19:46:32 +0900
Subject: [ruby-reference-manual:3447] [るりまプロジェクト - Bug #7576] fdiv と quo は同等ではない(特に 1.9 以降)


Issue #7576 has been updated by pypypy567 (py _).


貼ったパッチが大丈夫そうなら他のクラスのも同じような方針で書くつもりです。

----------------------------------------
Bug #7576: fdiv と quo は同等ではない(特に 1.9 以降)
https://bugs.ruby-lang.org/issues/7576#change-34775

Author: pypypy567 (py _)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
reporter: 
ruby_version: 


http://doc.ruby-lang.org/ja/1.9.3/method/Numeric/i/quo.html
現在 Numeric の quo と fdiv は一つの項目にまとめられています。
Numeric 系クラスに fdiv が追加された 1.8.7 では大体 quo と同じC関数で定義されてるようですがその意味付けは異なると思います。

fdiv は頭の f が示すようにほぼ常に Float を返します。
(Complex が絡むと実部と虚部が Float の Complex オブジェクトを返します。)
quo はなるべく正確な商を返します。
具体的には可能なら Rational を返します。
というのは 1.9 以降ですが、1.8系でも require 'rational' すればそうなります。

とりあえず Numeric だけ修正案を書いてみました。


ちなみに 1.9.3 以降で

  1.quo(3.0)  #=> (1/3)
などとなるのは quo の定義が Rational(self) / other みたいな感じになってることと Bug #7203 で報告した変更が原因です。
チケットは quo で書いちゃいましたが Rational クラスでは / と同等です。



-- 
http://bugs.ruby-lang.org/

--
ML: ruby-reference-manual@m...
Info: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      3446 2012-12-16 11:40 [redmine@r...        ] [るりまプロジェクト - Bug #7576][Open] fdiv と quo は同等ではない(特に 1.9 以降)
->    3447 2012-12-16 11:46 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7576] fdiv と quo は同等ではない(特に 1.9 以降)
      3577 2013-02-27 17:32 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7576] fdiv と quo は同等ではない(特に 1.9 以降)
      3581 2013-03-02 16:13 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7576] fdiv と quo は同等ではない(特に 1.9 以降)
      3582 2013-03-02 16:24 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7576] fdiv と quo は同等ではない(特に 1.9 以降)
      3592 2013-03-12 14:49 ┗[redmine@r...        ] [るりまプロジェクト - Bug #7576][Closed] fdiv と quo は同等ではない(特に 1.9 以降)