
A cool and quick trick to round floats to the nearest 0.5 in Ruby.
To round a number to the nearest 0.5 in most programming languages, you multiply the number by 2, round it, then divide the result by 2.
In Ruby, this looks like this:
(x * 2.0).round / 2.0If you are going to use it a lot, you can add it to the Float class:
class Float
def round_to_half
(self * 2.0).round / 2.0
end
endThen, you can simply use:
3.74.round_to_half
# => 3.5Just make sure you use a float and not an integer, as that method won't be available in another class (unless you make it available). For example:
2.round_to_half
# => undefined method `round_to_half' for 2:Fixnum