From 12ff88563d09f7c5b9f1c03b7f10bdbebd25e647 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sun, 17 Jan 2021 22:58:06 +0900 Subject: Fix `int_quo` to do float division; fix #5268 --- src/numeric.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/numeric.c b/src/numeric.c index 146eb635b..59136bece 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -177,9 +177,15 @@ int_quo(mrb_state *mrb, mrb_value xv) if (y == 0) { int_zerodiv(mrb); } - return mrb_fixnum_value(mrb_fixnum(xv) / y); + return mrb_fixnum_value(mrb_integer(xv) / y); #else - return int_div(mrb, xv); + mrb_float y; + + mrb_get_args(mrb, "f", &y); + if (y == 0) { + int_zerodiv(mrb); + } + return mrb_float_value(mrb, mrb_integer(xv) / y); #endif } -- cgit v1.2.3