Maintenance Ruby 3.3 gets fixes, but no new features. Switch to Ruby 4.0 →
instance method
Complex#to_r
to_r → rational
complex.c
View on GitHub ↗
static VALUE
nucomp_to_r(VALUE self)
{
get_dat1(self);
if (!k_exact_zero_p(dat->imag)) {
rb_raise(rb_eRangeError, "can't convert %"PRIsVALUE" into Rational",
self);
}
return f_to_r(dat->real);
}
Returns the value of self.real as a Rational, if possible:
Example
Complex(1, 0).to_r # => (1/1) Complex(1, Rational(0, 1)).to_r # => (1/1)
Raises RangeError if self.imag is not exactly zero (either Integer(0) or Rational(0, _n_)).
Related: Complex#rationalize.