13

10 進数が 0、1、または 2 桁の BigDecimal があります (round(2) を呼び出しています)。必要な数の 10 進数のみが表示されるように、ビューに表示したいと考えています。言い換えると:

 7.0 -> "7"
 7.5 -> "7.5"
 7.67 -> "7.67"

どうすればこれを達成できますか? これまでのところ、「7」ではなく「7.0」と表示されています。

4

2 に答える 2

12

ビューについては、NumberHelper のメソッド、特にnumber_with_precisionhttp://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_with_precision を参照してください。

特に、strip_insignificant_zeros オプションが必要です。

于 2012-09-11T20:13:25.480 に答える
9

オタクの魔法があれば、RubyonRailsは必要ありませんsprintf

[7.0, 7.5, 7.57].map{ |f| "%g" % BigDecimal.new(f,3) }
#=> ["7", "7.5", "7.57"]
于 2012-09-11T21:55:48.063 に答える