Issue #17114 has been updated by ahorek (Pavel Rosick=FD).


Hi, it's not a bug. +-1 is a precision argument.

```
irb> 12.34.floor(-1)
=3D> 10
irb> 12.34.floor(+1)
 =3D> 12.3
```

take a look at the documentation, it describes this exact behavior well.
https://ruby-doc.org/core-2.7.1/Float.html#method-i-floor

Returns a floating point number when ndigits is positive, otherwise returns=
 an integer.

----------------------------------------
Bug #17114: Float is not properly kept as integer when integer is added wit=
hout space
https://bugs.ruby-lang.org/issues/17114#change-87017

* Author: tammo (tammo tjarks)
* Status: Rejected
* Priority: Normal
* ruby -v: ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Hello dear ruby community,
I observed the following strange behaviour (maybe it is intended) in Versio=
n 2.6.3p62:
ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]

In pry I can see:
``` ruby
[7] pry(main)> 1.0.floor +1
=3D> 1.0
[8] pry(main)> (1.0).floor +1
=3D> 1.0
[9] pry(main)> (1.0.floor) +1
=3D> 2
[10] pry(main)> 1.0.floor + 1
=3D> 2
```
I think the reason is, that +1 is taken as argument to floor. Anyway, it is=
 strange, that 1.0.floor is integer but 1.0.floor +1 again a float. Is this=
 intended behaviour. I have not the lates ruby version installed, so I do n=
ot know if it may be changed. Also I observed it only with +1. With -1 I ge=
t:
``` ruby
[8] pry(main)> 1.0.floor -1
=3D> 0
```


Best regards,
Tammo







-- =

https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=3Dunsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>