/*
 * call-seq:
 *   Float.induced_from(obj)    =>  float
 *
 * Convert <code>obj</code> to a float.
 */

static VALUE
rb_flo_induced_from(VALUE klass, VALUE x)
{
    switch (TYPE(x)) {
      case T_FIXNUM:
      case T_BIGNUM:
      case T_RATIONAL:
        return rb_funcall(x, rb_intern("to_f"), 0);
      case T_FLOAT:
        return x;
      default:
        rb_raise(rb_eTypeError, "failed to convert %s into Float",
                 rb_obj_classname(x));
    }
}