web-dev-qa-db-ja.com

Rails 3.編集フォームで小数点以下2桁を表示する方法は?

この編集フォームがあります。

しかし、1.5などを保存するときは、1.50と表示したいと思います。

フォームヘルパーでどうすればいいですか? <%= f.text_field :cost, :class => 'cost' %>

66
leonel

number_with_precisionヘルパーを使用する必要があります。 ドキュメントを参照

例:

number_with_precision(1.5, :precision => 2)
=> 1.50 

フォームヘルパー内で:

<%= f.text_field :cost, :class => 'cost', :value => (number_with_precision(f.object.cost, :precision => 2) || 0) %>

ところで、本当に価格を表示したい場合は、number_to_currency、docの同じページを使用します(フォームコンテキストでは、number_with_precisionを保持します。お金のシンボルを台無しにしたくありません)


159
apneadiving

または、フォーマット文字列"%.2f" % 1.5を使用できます。 http://Ruby-doc.org/docs/ProgrammingRuby/html/ref_m_kernel.html#Kernel.sprintf

44
gkuan

このために、number_to_currencyフォーマーを使用します。私は米国にいるので、デフォルトはうまく機能します。

<% price = 45.9999 %>
<price><%= number_to_currency(price)%></price>
=> <price>$45.99</price>

デフォルトが機能しない場合は、オプションを渡すこともできます。 api.rubyonrails.org で利用可能なオプションのドキュメント

10
codesponge

Railsには number_to_currency ヘルパーメソッドがあり、特定のユースケースにより適しています。

7
Brian