Actions
Bug #20654
closedFloor and ceil have unexpected behaviour when ndigits is large
Description
GitHub PR: https://github.com/ruby/ruby/pull/11257
There is unexpected behaviour in Integer#floor, Float#floor, Integer#ceil, Float#ceil when ndigits is large such that 10**ndigits is a bignum.
Previously, it would return 0 in such cases. However, this would cause unexpected behaviour such as:
puts -1.floor(-5) # => -100000
puts -1.floor(-10) # => -10000000000
puts -1.floor(-20) # => 0
puts 1.ceil(-5) # => 100000
puts 1.ceil(-10) # => 10000000000
puts 1.ceil(-20) # => 0
The PR changes the last result so that it will return -100000000000000000000 and 100000000000000000000, respectively.
Actions
Like0
Like0Like0Like0