Разве это не то, что вы хотите?
>> 15.755.round(2)
=> 15.76
Ах, вы, вероятно, используете 1.8 (почему, кстати?). Там вы можете сделать следующее:
>> (15.755 * 100).round / 100.0
=> 15.76
Вы можете заключить это в вспомогательную функцию:
def round(n, precision)
raise "Precision needs to be >= 0" if precision < 0
power_of_ten = 10 ** precision
(n * power_of_ten).round / power_of_ten.to_f
end
round(15.755, 2) #=> 15.76