0

我知道number_to_currency,但想用来number_with_precision在数据库中输出某些产品的价格

我有一个prices存储在一个数据库中,它有一个列类型decimal precision: 10, scale: 2。价格存储为3.002.99

我在输出价格时遇到问题 - 它正确输出2.99价格,但只输出3.0其他价格

您是否有任何关于如何让所有数字显示两位小数的信息,而不管它们的值如何?

谢谢!

这是我的代码:

#app/models/feature.rb
def price=(price)
    number_with_precision price
end
4

3 回答 3

4

在您的情况下,确实不需要更复杂的方法来执行此操作。只需使用 Ruby:

'%.2f' % price
# e.g:
'%.2f' % 3 #=> "3.00"
于 2014-03-26T19:03:54.660 回答
2

您在选项中指定小数点后的位数precision

<%= number_with_precision(price, precision: 2) %>

number_with_precision来自ActionView::Helpers::NumberHelper模块。要在没有此帮助程序的情况下使用它,您需要包含此模块:

class MyClass
  include ActionView::Helpers::NumberHelper

  def price_to_number(price)
    number_with_precision(price, precision: 2)
  end
end
于 2014-03-26T18:59:52.910 回答
-1

答案是这样的:

#app/models/feature.rb
class Feature < ActiveRecord::Base
  include ActionView::Helpers::NumberHelper

  def price
     number_with_precision read_attribute(:price), precision: 2
  end
end
于 2014-03-26T19:46:07.787 回答