From: nobu@... Date: 2017-10-07T23:13:36+00:00 Subject: [ruby-dev:50282] [Ruby trunk Bug#13986][Feedback] Integer#fdiv with Complex returns unexpected value Issue #13986 has been updated by nobu (Nobuyoshi Nakada). Description updated Status changed from Open to Feedback 5.5 (5 5) wrote: > 期待は,それぞれ > > ```ruby > Complex(1.0, 0.0) > Complex(0.0, -1.0) > ``` > > でした。 2.4の結果がおかしいのは確かですが、その期待は本当に正しいんでしょうか。 ドキュメント上は以下のように単にfloatを返すことになっています。 > int.fdiv(numeric) -> float > > Returns the floating point result of dividing `int` by `numeric`. > > 654321.fdiv(13731) #=> 47.652829364212366 > 654321.fdiv(13731.24) #=> 47.65199646936475 > -654321.fdiv(13731) #=> -47.652829364212366 trunkでは`Complex(1.0, 0.0).to_f`と同様例外になります。 ---------------------------------------- Bug #13986: Integer#fdiv with Complex returns unexpected value https://bugs.ruby-lang.org/issues/13986#change-67114 * Author: 5.5 (5 5) * Status: Feedback * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin15] * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- Ruby 2.4 では,`Integer#fdiv` に `Complex` オブジェクトを与えると,期待と違う値が得られる場合があります。 ```ruby p 1.fdiv(1+0i) #=> -1.404447761611185e+306 p 1.fdiv(1i) #=> -1.0e-323 ``` 期待は,それぞれ ```ruby Complex(1.0, 0.0) Complex(0.0, -1.0) ``` でした。 Ruby 2.3.3 では期待のとおりでした。 -- https://bugs.ruby-lang.org/