Ruby on rails 价格的精确数字
我知道,但希望使用精度为的Ruby on rails 价格的精确数字,ruby-on-rails,ruby-on-rails-4,ruby-on-rails-4.1,Ruby On Rails,Ruby On Rails 4,Ruby On Rails 4.1,我知道,但希望使用精度为的number\u以db的形式输出某些产品的价格 我有一个存储在db中的prices,它的列类型十进制精度:10,刻度:2。价格存储为3.00和2.99 我在输出价格时遇到问题-对于2.99价格,它输出正确,但对于另一个价格,它只输出3.0 你有关于如何让所有数字显示两位小数的信息吗 谢谢 这是我的密码: #app/models/feature.rb def price=(price) number_with_precision price end 在精度选项中
number\u
以db的形式输出某些产品的价格
我有一个存储在db中的prices
,它的列类型十进制精度:10,刻度:2
。价格存储为3.00
和2.99
我在输出价格时遇到问题-对于2.99
价格,它输出正确,但对于另一个价格,它只输出3.0
你有关于如何让所有数字显示两位小数的信息吗
谢谢
这是我的密码:
#app/models/feature.rb
def price=(price)
number_with_precision price
end
在
精度
选项中指定小数点后的位数:
<%= number_with_precision(price, precision: 2) %>
在
精度
选项中指定小数点后的位数:
<%= number_with_precision(price, precision: 2) %>
在您的案例中,确实不需要更复杂的方法来实现这一点。只需使用Ruby:
'%.2f' % price
# e.g:
'%.2f' % 3 #=> "3.00"
在您的案例中,确实不需要更复杂的方法来实现这一点。只需使用Ruby:
'%.2f' % price
# e.g:
'%.2f' % 3 #=> "3.00"
因此,答案是:
#app/models/feature.rb
class Feature < ActiveRecord::Base
include ActionView::Helpers::NumberHelper
def price
number_with_precision read_attribute(:price), precision: 2
end
end
#app/models/feature.rb
类功能
#app/models/feature.rb
class Feature < ActiveRecord::Base
include ActionView::Helpers::NumberHelper
def price
number_with_precision read_attribute(:price), precision: 2
end
end
#app/models/feature.rb
类功能
更新的问题-我想这是我的setter的问题为什么我被否决了?所以你的问题是“输出一个价格…”,你给我们看了一个setter。你能解释一下你想做什么吗?你为什么有那个二传手?我有个二传手来定价格。因此,如果价格被输出,它会自动设置为一个价格——我不明白为什么沃伦特·唐沃蒂会在你问了关于唐沃蒂的问题后,碰巧问了这个问题!你可能在寻找一个getter而不是setter,这样你就可以根据你的喜好格式化输出了吗?更新的问题-我认为这是我的setter的问题为什么我被否决了?所以你的问题是“输出一个价格…”,你给我们看了一个setter。你能解释一下你想做什么吗?你为什么有那个二传手?我有个二传手来定价格。因此,如果价格被输出,它会自动设置为一个价格——我不明白为什么沃伦特·唐沃蒂会在你问了关于唐沃蒂的问题后,碰巧问了这个问题!您是否可能正在寻找一个getter而不是setter,以便将输出格式化为您的首选项?现在您有了一个负责格式化输出数据的模型-这太糟糕了。如果你坚持使用方便的方法,并且考虑到number\u with\u precision
已经是一种方便的方法(并且是可配置的),这应该是一个助手(或演示者的一部分)。@coreyward,我真的想象不出有人能够按照你解释的方式来阅读它。很抱歉造成混淆,我的目的不是介绍格式化数字的模型,我的目的是展示这个助手方法的用法,因为NumberHelper
在模型或代码的其他部分中不可用。现在您有了一个负责格式化输出数据的模型-这太糟糕了。如果你坚持使用方便的方法,并且考虑到number\u with\u precision
已经是一种方便的方法(并且是可配置的),这应该是一个助手(或演示者的一部分)。@coreyward,我真的想象不出有人能够按照你解释的方式来阅读它。很抱歉造成混淆,我的目的不是介绍格式化数字的模型,我的目的是展示此助手方法的用法,因为NumberHelper
在模型或代码的其他部分中不可用。请注意!永远不要这样做!不要在模型中包含ActionView内容def price=(value)p='%.2f'%value write_属性(:price,p)end
新人注意!永远不要这样做!不要在模型中包含ActionView内容def price=(value)p='%.2f'%value write_attribute(:price,p)end
显示小数点后两位数字的完美方式。显示小数点后两位数字的完美方式。