summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/numeric.c10
1 files 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
}