diff options
Diffstat (limited to 'object.c')
-rw-r--r-- | object.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -2747,8 +2747,11 @@ rb_convert_to_integer(VALUE val, int base) VALUE tmp; if (RB_FLOAT_TYPE_P(val)) { + double f; if (base != 0) goto arg_error; - return rb_dbl2ival(RFLOAT_VALUE(val)); + f = RFLOAT_VALUE(val); + if (FIXABLE(f)) return LONG2FIX((long)f); + return rb_dbl2big(f); } else if (RB_INTEGER_TYPE_P(val)) { if (base != 0) goto arg_error; |