10 進数が 0、1、または 2 桁の BigDecimal があります (round(2) を呼び出しています)。必要な数の 10 進数のみが表示されるように、ビューに表示したいと考えています。言い換えると:
7.0 -> "7"
7.5 -> "7.5"
7.67 -> "7.67"
どうすればこれを達成できますか? これまでのところ、「7」ではなく「7.0」と表示されています。
10 進数が 0、1、または 2 桁の BigDecimal があります (round(2) を呼び出しています)。必要な数の 10 進数のみが表示されるように、ビューに表示したいと考えています。言い換えると:
7.0 -> "7"
7.5 -> "7.5"
7.67 -> "7.67"
どうすればこれを達成できますか? これまでのところ、「7」ではなく「7.0」と表示されています。
ビューについては、NumberHelper のメソッド、特にnumber_with_precision
http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_with_precision を参照してください。
特に、strip_insignificant_zeros オプションが必要です。
オタクの魔法があれば、RubyonRailsは必要ありませんsprintf
。
[7.0, 7.5, 7.57].map{ |f| "%g" % BigDecimal.new(f,3) }
#=> ["7", "7.5", "7.57"]