ruby-reference-manual:3581
From: "pypypy567 (py _)" <redmine@r...>
Date: Sun, 3 Mar 2013 00:13:26 +0900
Subject: [ruby-reference-manual:3581] [るりまプロジェクト - Bug #7576] fdiv と quo は同等ではない(特に 1.9 以降)
Issue #7576 has been updated by pypypy567 (py _). File quo_fdiv.patch added ありがとうございます。 以下のクラスについても書いてみました。 Fixnum, Bignum, Complex, Rational, complex.rd, rational.rd Numeric にも少し手を入れています。 Fixnum, Bignum, complex.rd 以外は最低限の修正しかしていません。 Float と BigDecimal はどうするか決めるのがちょっと面倒そうなので今回はパスさせてください。 Float に関しては今は項目自体省略されています。 何か書いた方がいいと思ったら別にチケットを作ります。 ---------------------------------------- Bug #7576: fdiv と quo は同等ではない(特に 1.9 以降) https://bugs.ruby-lang.org/issues/7576#change-37255 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 以降)