diff options
Diffstat (limited to 'mrbgems/mruby-rational/src')
| -rw-r--r-- | mrbgems/mruby-rational/src/rational.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/mrbgems/mruby-rational/src/rational.c b/mrbgems/mruby-rational/src/rational.c index 6d94cb21f..1feb2530e 100644 --- a/mrbgems/mruby-rational/src/rational.c +++ b/mrbgems/mruby-rational/src/rational.c @@ -192,7 +192,14 @@ static mrb_value rational_to_f(mrb_state *mrb, mrb_value self) { struct mrb_rational *p = rational_ptr(mrb, self); - mrb_float f = (mrb_float)p->numerator / (mrb_float)p->denominator; + mrb_float f; + + if (p->denominator == 0.0) { + f = INFINITY; + } + else { + f = (mrb_float)p->numerator / (mrb_float)p->denominator; + } return mrb_float_value(mrb, f); } |
