Issue #17114 has been updated by jeremyevans0 (Jeremy Evans).

Status changed from Open to Rejected

This is expected.  `1.0.floor + 1` is parsed as `((1.0).floor).+(1)`.  `1.0.floor +1` is parsed as `(1.0).floor(+1)`.  This is also true for `-1`, it's just that `((1.0).floor).-(1)` and `(1.0).floor(-1)` are both `0`, since `(floor).floor(-1)` means the floor of the 10s column.  You'll get different results for `10.0.floor -1` and `10.0.floor - 1`.

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

* 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 Version 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
=> 1.0
[8] pry(main)> (1.0).floor +1
=> 1.0
[9] pry(main)> (1.0.floor) +1
=> 2
[10] pry(main)> 1.0.floor + 1
=> 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 not know if it may be changed. Also I observed it only with +1. With -1 I get:
``` ruby
[8] pry(main)> 1.0.floor -1
=> 0
```


Best regards,
Tammo







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

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