APIdock / Ruby
/
method

rationalize

ruby latest stable - Class: Complex
rationalize(p1 = v1)
public

Returns the value as a rational if possible (the imaginary part should be exactly zero).

Complex (1.0/3, 0).rationalize  #=> (1/3)
Complex (1, 0.0).rationalize  # RangeError
Complex (1, 2).rationalize  # RangeError

See to_r.

static VALUE
nucomp_rationalize(int argc, VALUE *argv, VALUE self)
{
 get_dat1(self);
 rb_scan_args(argc, argv, "01", NULL);
 if (!k_exact_zero_p(dat->imag)) {
 rb_raise(rb_eRangeError, "can't convert %"PRIsVALUE" into Rational",
 self);
 }
 return rb_funcallv(dat->real, id_rationalize, argc, argv);
}

AltStyle によって変換されたページ (->オリジナル) /