Project

General

Profile

Bug #13986

Integer#fdiv with Complex returns unexpected value

Added by 5.5 (5 5) almost 2 years ago. Updated 9 months ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin15]
[ruby-dev:50281]

Description

Ruby 2.4 では,Integer#fdivComplex オブジェクトを与えると,期待と違う値が得られる場合があります。

p 1.fdiv(1+0i) #=> -1.404447761611185e+306
p 1.fdiv(1i) #=> -1.0e-323

期待は,それぞれ

Complex(1.0, 0.0)
Complex(0.0, -1.0)

でした。

Ruby 2.3.3 では期待のとおりでした。


Related issues

Related to Ruby master - Bug #13928: Calling Integer.fdiv with BigDecimal returns unexpected resultClosedActions

History

#1

Updated by nobu (Nobuyoshi Nakada) almost 2 years ago

  • Related to Bug #13928: Calling Integer.fdiv with BigDecimal returns unexpected result added

Updated by nobu (Nobuyoshi Nakada) almost 2 years ago

  • Status changed from Open to Feedback
  • Description updated (diff)

5.5 (5 5) wrote:

期待は,それぞれ

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と同様例外になります。

Updated by 5.5 (5 5) 9 months ago

  • Status changed from Feedback to Closed

反応が遅くなってすみません。
現行の(修正後の)仕様について、そういうものなのだろう、と納得いたしました。

Also available in: Atom PDF