63

私は通貨を扱っており、数値を小数点以下 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
4

5 に答える 5