我正在处理货币,我想将数字四舍五入到小数点后 2 位。即使数字是 500.0,我也希望它是 500.00 以保持一致。当我执行“500.00”.to_d 时,它会将其转换为 500.0。
什么是改变这种行为的好方法?我还使用这种方法向下舍入到 2 位数字,并确保它始终有 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