What is the difference between x.floor and x.floor!?


#1

round_down = Proc.new { |x| x.floor }

this code is running but,

round_down = Proc.new { |x| x.floor! }

this code is NOT RUNNING..

WHY?


#2

I may be mistaken, but it seems that only floor exists, and not floor!.