diff options
Diffstat (limited to 'src/numeric.c')
| -rw-r--r-- | src/numeric.c | 10 |
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 } |
