私は通貨を扱っています。小数点以下2桁まで切り捨てたいと思います。番号が500.0であっても、一貫性を保つために500.00にしたいと思います。 "500.00" .to_dを実行すると、500.0に変換されます。to_dルビに2桁の小数点以下を返す
この動作を変更する良い方法はありますか?私はまた、このメソッドを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
を、本物のプログラマ*任意の*言語でCを書くことができます! ''%.2f'%500'はRubyイディオムです。 –
@CamilleGoudeseune私はそれほど多年にわたりJavaを非難しています。/ – mcfinnigan
sprintfは%よりも明示的です。私はIDEのsprintfでF1キーを押して簡単にパラメータの書式設定に関する助けを得ることができます –