summaryrefslogtreecommitdiff
path: root/object.c
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-01 06:42:59 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-01 06:42:59 +0000
commita1428471182d77d4f40c30d467bf701b67c86aae (patch)
tree99ff997d89d032176ab5e0ff95deac40c044d0bf /object.c
parent2c8756f2c8512e763afea4b63462397a14f09ece (diff)
merges r21214 from trunk into ruby_1_9_1.
* object.c (rb_to_float): replaced by to_flo definition from math.c [ruby-dev:37668] * math.c (Need_Float): use rb_to_float(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'object.c')
-rw-r--r--object.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/object.c b/object.c
index 4f2fcb6def..aacf7ce43f 100644
--- a/object.c
+++ b/object.c
@@ -2267,6 +2267,20 @@ rb_f_float(VALUE obj, VALUE arg)
return rb_Float(arg);
}
+VALUE
+rb_to_float(VALUE val)
+{
+ if (TYPE(val) == T_FLOAT) return val;
+ if (!rb_obj_is_kind_of(val, rb_cNumeric)) {
+ rb_raise(rb_eTypeError, "can't convert %s into Float",
+ NIL_P(val) ? "nil" :
+ val == Qtrue ? "true" :
+ val == Qfalse ? "false" :
+ rb_obj_classname(val));
+ }
+ return rb_convert_type(val, T_FLOAT, "Float", "to_f");
+}
+
double
rb_num2dbl(VALUE val)
{