summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-08-08 15:36:17 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-08-08 15:36:55 +0900
commitdf969b163ad43b7930c6965d457682a2f290553a (patch)
tree9a48e4ac8efb86f066b90bd0a2cf5c537be243b9
parentad8b36daa1a10746ad6829670b26f0f05c151b4c (diff)
downloadmruby-df969b163ad43b7930c6965d457682a2f290553a.tar.gz
mruby-df969b163ad43b7930c6965d457682a2f290553a.zip
Return `NaN` for `0/0`; d8e060d
-rw-r--r--src/numeric.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/numeric.c b/src/numeric.c
index 54a54f563..83a4ef716 100644
--- a/src/numeric.c
+++ b/src/numeric.c
@@ -166,9 +166,12 @@ integral_div(mrb_state *mrb, mrb_value xv)
x = mrb_to_flo(mrb, xv);
if (y == 0) {
if (x < 0)
- return mrb_float_value(mrb, -INFINITY);
- else
- return mrb_float_value(mrb, INFINITY);
+ y = -INFINITY;
+ else if (x > 0)
+ y = INFINITY;
+ else /* if (x == 0) */
+ y = NAN;
+ return mrb_float_value(mrb, y);
}
return mrb_float_value(mrb, x / y);
#endif