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

ruby-reference-manual:3446

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


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

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

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 以降)