我知道number_to_currency
,但希望使用number_with_precision
为数据库中的某些产品输出价格
我有一个prices
存储在db中,其列类型为decimal precision: 10, scale: 2
。价格存储为3.00
和2.99
输出价格时遇到问题 - 它以2.99
价格正确输出,但只为其他
3.0
您是否有任何关于如何使所有数字显示两位小数的信息,无论其值如何?
谢谢!
这是我的代码:
#app/models/feature.rb
def price=(price)
number_with_precision price
end
答案 0 :(得分: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
答案 1 :(得分:2)
在您的情况下,实际上并不需要更复杂的方法。只需使用Ruby:
'%.2f' % price
# e.g:
'%.2f' % 3 #=> "3.00"
答案 2 :(得分:-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