diff --git a/kernel/common/random19.rb b/kernel/common/random19.rb index dc0cfa976d..9a697faac3 100644 --- a/kernel/common/random19.rb +++ b/kernel/common/random19.rb @@ -14,6 +14,9 @@ def random(limit) else if limit.kind_of?(Range) random_range(limit) + elsif limit.kind_of?(Float) + raise ArgumentError, "invalid argument - #{limit}" if limit <= 0 + random_float * limit else limit_int = Rubinius::Type.coerce_to limit, Integer, :to_int raise ArgumentError, "invalid argument - #{limit}" if limit_int <= 0