summaryrefslogtreecommitdiff
path: root/numeric.c
diff options
context:
space:
mode:
Diffstat (limited to 'numeric.c')
-rw-r--r--numeric.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/numeric.c b/numeric.c
index 10bc424738..a4ccd01b5b 100644
--- a/numeric.c
+++ b/numeric.c
@@ -2269,6 +2269,8 @@ fixdivmod(long x, long y, long *divp, long *modp)
*
*/
+VALUE rb_big_fdiv(VALUE x, VALUE y);
+
static VALUE
fix_fdiv(VALUE x, VALUE y)
{
@@ -2277,7 +2279,7 @@ fix_fdiv(VALUE x, VALUE y)
}
switch (TYPE(y)) {
case T_BIGNUM:
- return DBL2NUM((double)FIX2LONG(x) / rb_big2dbl(y));
+ return rb_big_fdiv(rb_int2big(FIX2LONG(x)), y);
case T_FLOAT:
return DBL2NUM((double)FIX2LONG(x) / RFLOAT_VALUE(y));
default: