Dan*_*ola 13 ruby formatting ruby-on-rails-3
我有一个BigDecimal,它有0,1或2个十进制数字(我在它上面调用round(2)).我希望在视图中以这样的方式显示它,它只会显示所需的十进制数字.换一种说法:
7.0 -> "7"
7.5 -> "7.5"
7.67 -> "7.67"
Run Code Online (Sandbox Code Playgroud)
我该如何实现这一目标?到目前为止,它显示的是"7.0"而不是"7".
Mur*_*foX 12
为了您的意见,看看从NumberHelper的方法,特别是number_with_precision,http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_with_precision
特别是,您需要strip_insignificant_zeros选项.
当你拥有令人讨厌的神奇之处时,你不需要Ruby on Rails sprintf:
[7.0, 7.5, 7.57].map{ |f| "%g" % BigDecimal.new(f,3) }
#=> ["7", "7.5", "7.57"]
Run Code Online (Sandbox Code Playgroud)