13

我有一个 BigDecimal,它有 0、1 或 2 个十进制数字(我在上面调用 round(2))。我想在视图中显示它,使其只显示所需的十进制数字。换句话说:

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

我如何实现这一目标?到目前为止,它显示的是“7.0”而不是“7”。

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

当您拥有以下令人讨厌的魔力时,您就不需要 Ruby on Rails 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 回答