From 0d076fe4b3594f8bf4a229aa49c63563df28c899 Mon Sep 17 00:00:00 2001 From: mrkn Date: Fri, 18 Mar 2016 15:02:45 +0000 Subject: * bignum.c (rb_big_to_f, Bignum#to_f): removed them because they are unified with int_to_f and Integer#to_f. * numeric.c (int_to_f): treat Bignum values directly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- numeric.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'numeric.c') diff --git a/numeric.c b/numeric.c index e0871049f7..99ad0882b8 100644 --- a/numeric.c +++ b/numeric.c @@ -3767,7 +3767,8 @@ fix_aref(VALUE fix, VALUE idx) * call-seq: * int.to_f -> float * - * Converts +int+ to a Float. + * Converts +int+ to a +Float+. If +int+ doesn't fit in a +Float+, + * the result is infinity. * */ @@ -3779,6 +3780,9 @@ int_to_f(VALUE num) if (FIXNUM_P(num)) { val = (double)FIX2LONG(num); } + else if (RB_TYPE_P(num, T_BIGNUM)) { + val = rb_big2dbl(num); + } else { rb_raise(rb_eTypeError, "Unknown subclass for to_f: %s", rb_obj_classname(num)); } -- cgit v1.2.3