Не первый раз натыкаюсь в коде на округление до 3-го знака после запятой таким способом
require 'active_support'
# ...
(object.to_f*1000).round/1000.0
Я не даром отметил require ‘active_support’, если бы этого не было выше по коду — этой заметки не было бы.
Дело в том, что ActiveSupport расширяет метод Float#round, добавляя в него дополнительный аргумент precision, и в случае если он задан, он делает то же самое, что и код выше, но итоговый код намного понятнее.
object.to_f.round(3)
P.S. ActiveSupport много чего еще добавляет — хватит на большую статью. Вместо изобретения велосипедов почитайте исходники того, чем пользуетесь.

Это ведь в ActiveSupport к целым числам добавляются методы bytes, kilobytes и пр.? Или на уровне Ruby?
Да, именно там active_support-2.3.2/lib/active_support/core_ext/numeric/bytes.rb