From: Tadashi Saito Date: 2003-07-13T03:21:17+09:00 Subject: [ruby-dev:20645] Re: [BigDecimal] dup and to_f 斎藤です。一箇所間違えてました。 > static VALUE > +BigDecimal_to_f(VALUE self) > +{ > + ENTER(1); > + Real *p; > + double d, d2; > + S_LONG e; > + > + GUARD_OBJ(p,GetVpValue(self,1)); > + VpVtoD(&d, &e, p); > + if(d == 0.0 || isinf(d) || isnan(d)) > + return rb_float_new(d); > + errno = 0; > + d2 = pow(10.0, e); > + if(errno == ERANGE || (d2 == 0.0 && d != 0.0) > + || d > DBL_MAX / d2 || d < DBL_MIN / d2) { ここの「d != 0.0」は余分でした。 if(errno == ERANGE || d2 == 0.0 || d > DBL_MAX / d2 || d < DBL_MIN / d2) { が正しいです。すみません。 --- 斎藤ただし