以下是我的家庭控制器:
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