请注意变量和数字的精确度

时间:2016-07-28 01:35:53

标签: ruby-on-rails ruby

这里非常简单的语法问题,因为我是rails的新手。在我的控制器中,我有两个变量,我试图在重定向后的通知中显示。它们是piece.title和piece.price(作品是我的模特)。价格是小数,所以我希望在小数点后用两位数显示(如<%= number_with_precision piece.price, :precision => 2 %>

我目前的代码是:

redirect_to pieces_path, notice: "Thanks for buying #{piece.title} for #{piece.price}."

这样可行,但如何将价格提高到两位小数?当我尝试精确地编号时,我会遇到语法错误。

感谢。

2 个答案:

答案 0 :(得分:0)

你得到了什么错误?我的猜测是price.piece是零,因为你的代码看起来是正确的,假设你在视图中使用它而不是你的控制器。此外,如果它应该是钱,你应该使用number_to_currency

<%= number_to_currency piece.price, :precision => 2 %>

答案 1 :(得分:0)

你可以用这个来实现它:

'%.2f' % 10 
#=> "10.00"

"Thanks for buying #{piece.title} for #{'%.2f' % price}."
#=> "Thanks for buying Coffee for 10.00."

将您的通知更改为

class YourControllerName
  def my_method
    #......
    redirect_to pieces_path, notice: "Thanks for buying #{piece.title} for #{'%.2f' % piece.price}."
  end
end