Issue #18984 has been updated by kyanagi (Kouhei Yanagita).
It seems that there is a similar issue with beginless ranges.
```
(..0).size # => Infinity
(..0).count # => Infinity
(..0).each {} # => can't iterate from NilClass (TypeError)
```
Is it reasonable to say the size is infinite even if it can't be iterated?
----------------------------------------
Misc #18984: Doc for Range#size for Float/Rational does not make sense
https://bugs.ruby-lang.org/issues/18984#change-104836
* Author: masasakano (Masa Sakano)
* Status: Open
* Priority: Normal
----------------------------------------
When `Range` consists of any Numeric, according to [Official docs for
Ruby-3.1.2](https://ruby-doc.org/core-3.1.2/Range.html#method-i-size), `Range#size`
should,
Returns the count of elements in self if both begin
and end values are numeric;
Indeed, when `Range` consists of only `Integer`, this makes sense.
However, when the begin value of `Range` is a `Float` or `Rational`, "*the count of
elements*" does not make sense. Such Ranges are not iteratable, suggesting there are
no such things as "elements":
```ruby
(0.51..5.quo(2)).each{} # => TypeError
```
Yet, `Range#size` of such Ranges returns an Integer
```ruby
(0.51..5.quo(2)).size # => 2
```
It seems both begin and end values of a Range are rounded (`Numeric#round`) to the nearest
Integer before `Range#size` is calculated.
If this is the specification, I suggest it should be clearly stated in the [Official
docs](https://ruby-doc.org/core-3.1.2/Range.html#method-i-size), avoiding the confusing
expression "the count of elements", because "elements" are not
unambiguously defined for Range of Float/Rational.
--
https://bugs.ruby-lang.org/