使用Ruby和Haml,我有一个成本的属性。我相信(我是红宝石的新手),它将是一个Float
此时下面的行以4.5的格式输出我的小数而不是4.50,这就是我想要的。
%span.value= "£#{event.beers.first.cost)}"
这是我的啤酒类文件。
class Beer
include Mongoid::Document
embeds_many :ratings
field :name, type: String
field :country, type: Country
field :cost, type: Float
field :photos, type: PhotoArray, default: PhotoArray.new
end
答案 0 :(得分:6)
如果您使用的是Rails,可以使用number_to_currency帮助
答案 1 :(得分:4)
请参阅字符串格式化方法,Kernel::sprintf文档包含所有参数。
在这种情况下,您希望%span.value= "%%pound;%.2f" % event.beers.first.cost
获得4.50而不是4.5。
答案 2 :(得分:2)
如果你在谈论美国货币,包括:
试试这个
sprintf('%.2f',num).gsub('.00','').reverse.scan(/(\d*\.\d{1,3}|\d{1,3})/).join(',').reverse
在调试器中生成以下内容:
vals = [123.01, 1234.006, 12, 1234567, 12345678.1,1.001]
vals.map{|num| sprintf('%.2f',num).gsub('.00','').reverse.scan(/(\d*\.\d{1,3}|\d{1,3})/).join(',').reverse
}
=> [“123.01”,“1,234.01”,“12”,“1,234,567”,“12,345,678.10”,“1”]
可以通过编辑连接字符串来调整它对某些欧洲格式有用,但我对欧洲惯例知之甚少。