diff options
| -rw-r--r-- | src/numeric.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/numeric.c b/src/numeric.c index fd9f5ce2c..a3021b19e 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -29,13 +29,13 @@ mrb_as_float(mrb_state *mrb, mrb_value val) return (mrb_float)mrb_integer(val); case MRB_TT_FLOAT: break; - case MRB_TT_STRING: - case MRB_TT_FALSE: - case MRB_TT_TRUE: - mrb_raise(mrb, E_TYPE_ERROR, "non float value"); - default: + case MRB_TT_RATIONAL: + case MRB_TT_COMPLEX: val = mrb_type_convert(mrb, val, MRB_TT_FLOAT, MRB_SYM(to_f)); break; + default: + mrb_raise(mrb, E_TYPE_ERROR, "non float value"); + break; } return mrb_float(val); } |
