From: hanmac@... Date: 2019-09-25T11:34:21+00:00 Subject: [ruby-core:95083] [Ruby master Bug#16180] Random.rand(max) ignores / is broken when max ceiling value is a float Issue #16180 has been updated by Hanmac (Hans Mackowiak). your cases are documented there: https://ruby-doc.org/core-2.6.4/Kernel.html#method-i-rand `When max.abs is greater than or equal to 1, rand returns a pseudo-random integer greater than or equal to 0 and less than max.to_i.abs.` `Negative or floating point values for max are allowed, but may give surprising results.` ---------------------------------------- Bug #16180: Random.rand(max) ignores / is broken when max ceiling value is a float https://bugs.ruby-lang.org/issues/16180#change-81715 * Author: BillyRuffian (Nigel Brookes-Thomas) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN ---------------------------------------- ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18] ruby 2.7.0preview1 (2019-05-31 trunk c55db6aa271df4a689dc8eb0039c929bf6ed43ff) [x86_64-darwin18] Calling `rand` with a float of > 1 always return 0. Calling `rand` with a float 0 < value > 1 will ignore the ceiling value. e.g. ``` rand(1.1) => 0 rand(1.1) => 0 rand(0.5) => 0.9501516156613756 rand(0.5) => 0.6864252478379304 ``` -- https://bugs.ruby-lang.org/ Unsubscribe: