Я имею дело с валютами, и я хочу округлить число до двух знаков после запятой. Даже если число составляет 500,0, я бы хотел, чтобы оно составляло 500,00. Когда я делаю "500.00".to_d, он преобразует его в 500.0.
Каков хороший способ изменить это поведение? Я также использую этот метод, чтобы округлить до двух цифр и убедиться, что он всегда имеет 2 десятичных знака.
def self.round_down(x, n=2)
s = x.to_s
l = s.index('.') ? s.index('.') + 1 + n : s.length
s = s[0, l]
s = s.index('.') ? s.length - (s.index('.') + 1) == 1 ? s << '0' : s : s << '.00'
s.to_f
end