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);
}