Rails货币,小数点后2位



以下是我的家庭控制器:

def index
  @products = Product.public_active
                     .order('random()')
                     .limit(6)
                     .includes(:product_attachments)
                     .includes(:product_reviews)
  @products.each do |product|
    if product.currency != session[:currency]
      if session["currency-convert-#{product.currency}"].to_f == 0.0
        rate = 1.0  
      else
        rate = session["currency-convert-#{session[:currency]}"].to_f / 
               session["currency-convert-#{product.currency}"].to_f
      end
    else
      rate = 1.0
    end
    product.price_with_currency = 300.00
    product.current_currency = session[:currency]
  end
end

这是我的观点:

<div id="product-list">
                <div class="row">
<p class="price"><%= product.price_with_currency %></p>
</div>
</div>

问题是,price_with_currency输出的是300.0的结果,而不是300.00的结果。为什么会这样?谢谢

您可以使用一个名为:number_with_precision 的助手

它看起来是这样的:

<p class="price"><%= number_with_precision(product.price_with_currency, :precision => 2) %></p>

点击这里阅读更多:Rails3。如何在编辑表单中显示小数点后两位?

您还可以使用number_to_currency助手

例如

<%= number_to_currency(300, :unit => "$ ", :separator => ".", :delimiter => ",") %>
## Output
$ 300.00

尝试使用两者之一:

<p class="price"><%= number_with_precision(product.price_with_currency, precision: 2) %></p>

<p class="price"><%= number_to_currency(product.price_with_currency, unit: "USD", precision: 2) %></p>

如果你想要货币:D像这样USD 3,000.00#如果3000

最新更新