1.0.div(0.0) vs. 1.0.divmod(0.0)

 div と divmod の以下の挙動の相違は意図されたものでしょうか。

irb(main):001:0> 1.0.div(0.0)
FloatDomainError: Infinity
from (irb):1:in div' from (irb):1 from /Users/knu/bin/irb-1.9:12:in
irb(main):002:0> 1.0.divmod(0.0)
=> [NaN, NaN]
irb(main):003:0> RUBY_VERSION
=> “1.9.0”

 ruby_1_8 でも同じですが、 ruby_1_8_6 だと divmod も以下の
ように例外を上げます。

irb(main):001:0> 1.0.divmod(0.0)
-e:1:in `divmod’: NaN (FloatDomainError)
from -e:1

 この件はどうでしょうか。意図せざるものにも思えますが。

 もしバグなら 1.8.7 までに直したいので、検討をお願いします。

At Mon, 19 May 2008 04:34:29 +0900,

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:34740] 1.0.div(0.0) vs. 1.0.divmod(0.0)”
on Mon, 19 May 2008 04:34:29 +0900, “Akinori MUSHA”
[email protected] writes:

|e$B!!e(Bdiv e$B$He(B divmod e$B$N0J2<$N5sF0$NAj0c$O0U?^$5$l$?$b$N$G$7$g$&$+!#e(B
|
|irb(main):001:0> 1.0.div(0.0)
|FloatDomainError: Infinity
| from (irb):1:in div' | from (irb):1 | from /Users/knu/bin/irb-1.9:12:in
|irb(main):002:0> 1.0.divmod(0.0)
|=> [NaN, NaN]
|irb(main):003:0> RUBY_VERSION
|=> “1.9.0”

1.9e$B$G$Oe(BFloate$B$N1i;;7k2L$G$“$ke(BInfe$B$de(BNaNe$B$r1#$5$:8+$;$k$h$&$K$7$^e(B
e$B$7$?!#$N$G!”$3$l$O0U?^$7$?$b$N$G$9!#$,!"e(Bdive$B$O4pK\E*$K@0=|$G$9e(B
e$B$+$i!"e(BZeroDivision e$B$G$bNI$$$N$+$b$7$l$^$;$s!#e(B

|e$B!!e(Bruby_1_8 e$B$G$bF1$8$G$9$,!"e(B ruby_1_8_6 e$B$@$He(B divmod e$B$b0J2<$Ne(B
|e$B$h$&$KNc30$r>e$2$^$9!#e(B

1.8e$B$G$O;EMM$OJQ$o$i$J$$J}$,$h$$$N$G$O$J$$$G$7$g$&$+!#e(B