irb(main):020:0> 10.0.__id__
=> 81064793292668930
irb(main):021:0> 10.__id__
=> 21
irb(main):022:0> 10==10.0
=> true
And for very large numbers: irb(main):031:0> 1e200.__id__
=> 340
irb(main):032:0> 1e200.__id__
=> 360
So it's a different threshold and different cases, but as a general rule, "equality and identity are different" still holds.