Project

General

Profile

Actions

Bug #781

closed

Numeric#step で step として Infinity をつかうと NaN を生成することがある

Added by tadf (tadayoshi funaba) over 15 years ago. Updated almost 13 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
Backport:

Description

=begin
1.0/0 = Infinity として

$ ./ruby -ve "0.step(10,1.0/0){|x| p x}"
ruby 1.9.0 (2008-11-24 revision 20336) [i686-linux]
NaN

1.8 も同じですが、1.6 はなりません。

$ ruby168 -ve "0.step(10,1.0/0){|x| p x}"
ruby 1.6.8 (2002-12-24) [i686-linux]
0
=end


Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #3945: Numeric#step with infinity unitClosed10/14/2010Actions
Actions #1

Updated by matz (Yukihiro Matsumoto) over 15 years ago

  • Status changed from Open to Closed

=begin
fixed by r20348.
=end

Actions #2

Updated by tadf (tadayoshi funaba) over 15 years ago

=begin
単に確認ですが、step が浮動小数点数だと、最初から浮動小数点数になっ
ていて、他の場合と違うように見えます。これはこういうものですか。

$ ./ruby -e "p 0.step(3,1.0){|x| p [x, x.class]}"
[0.0, Float]
[1.0, Float]
[2.0, Float]
[3.0, Float]
0

$ ./ruby -e "p 0.step(3,Rational(1)){|x| p [x, x.class]}"
[0, Fixnum]
[(1/1), Rational]
[(2/1), Rational]
[(3/1), Rational]
0

$ ./ruby -rbigdecimal -e "p 0.step(3,BigDecimal('1')){|x| p [x, x.class]}"
[0, Fixnum]
[#BigDecimal:81b5d48,'0.1E1',4(12), BigDecimal]
[#BigDecimal:81b5bcc,'0.2E1',4(12), BigDecimal]
[#BigDecimal:81b5adc,'0.3E1',4(12), BigDecimal]
0

=end

Actions #3

Updated by matz (Yukihiro Matsumoto) over 15 years ago

=begin
まつもと ゆきひろです

In message "Re: [ruby-dev:37188] [Bug #781] Numeric#step で step として Infinity をつかうと NaN を生成することがある"
on Tue, 25 Nov 2008 23:39:19 +0900, tadayoshi funaba writes:

|単に確認ですが、step が浮動小数点数だと、最初から浮動小数点数になっ
|ていて、他の場合と違うように見えます。これはこういうものですか。

beg, end, stepのいずれかがFloatだとぜんぶFloatで計算します。
これはそういうもののつもりです。

=end

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0