From 2031ae9f90ac8967253763d51d86065e7a49009d Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 21 Feb 2026 07:12:52 +0900 Subject: [PATCH] random.c: fix rand() with float range producing out-of-range values rand_range_float() incorrectly added +1.0 to span for inclusive ranges, logic copied from integer range handling. For float ranges, the span should simply be end-begin without adjustment. Fixes #6720. Co-authored-by: Claude --- mrbgems/mruby-random/src/random.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mrbgems/mruby-random/src/random.c b/mrbgems/mruby-random/src/random.c index db9483a55..fadd77abb 100644 --- a/mrbgems/mruby-random/src/random.c +++ b/mrbgems/mruby-random/src/random.c @@ -170,7 +170,7 @@ static mrb_value rand_range_float(mrb_state *mrb, rand_state *t, mrb_float begin, mrb_float end, mrb_bool excl) { - mrb_float span = end - begin + (excl ? 0.0 : 1.0); + mrb_float span = end - begin; if (span <= 0.0) return mrb_nil_value();