Actions
Bug #13986
closedInteger#fdiv with Complex returns unexpected value
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin15]
Backport:
Description
Ruby 2.4 では,Integer#fdiv
に Complex
オブジェクトを与えると,期待と違う値が得られる場合があります。
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 では期待のとおりでした。
Updated by nobu (Nobuyoshi Nakada) over 7 years ago
- Related to Bug #13928: Calling Integer.fdiv with BigDecimal returns unexpected result added
Updated by nobu (Nobuyoshi Nakada) over 7 years ago
- Description updated (diff)
- Status changed from Open to Feedback
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
bynumeric
.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) over 6 years ago
- Status changed from Feedback to Closed
反応が遅くなってすみません。
現行の(修正後の)仕様について、そういうものなのだろう、と納得いたしました。
Actions
Like0
Like0Like0Like0