summaryrefslogtreecommitdiffhomepage
path: root/src/numeric.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/numeric.c')
-rw-r--r--src/numeric.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/numeric.c b/src/numeric.c
index dc763b7ff..fec79ffd1 100644
--- a/src/numeric.c
+++ b/src/numeric.c
@@ -610,7 +610,9 @@ flo_shift(mrb_state *mrb, mrb_value x, mrb_int width)
val *= 2;
}
}
- return mrb_int_value(mrb, (mrb_int)val);
+ if (FIXABLE_FLOAT(val))
+ return mrb_int_value(mrb, (mrb_int)val);
+ return mrb_float_value(mrb, val);
}
static mrb_value