有办法让轨道打印出一个数字与逗号在它?
例如,如果我有一个数字540000000 .34,我可以运行<%= number。函数%>,输出“54,000,000.34”
谢谢!
有办法让轨道打印出一个数字与逗号在它?
例如,如果我有一个数字540000000 .34,我可以运行<%= number。函数%>,输出“54,000,000.34”
谢谢!
当前回答
对于不使用rails的人:
number.to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1,').reverse
其他回答
def add_commas(numstring)
correct_idxs = (1..100).to_a.select{|n| n % 6 == 0}.map{|n| n - 1}
numstring.reverse.chars.join(",").chars.select.with_index{|x, i| i.even? || correct_idxs.include?(i)}.join.reverse
end
这就是我的红宝石之路
除了编辑: 基本上,它在数字之间添加所有逗号,只选择索引为+ 1% 6的数字
我认为逗号到100是可以的,但如果你想要一个超长的数字,就把100变成一个更高的数字
您需要使用number_with_delimiter方法。例如:
<%= number_with_delimiter(@number, :delimiter => ',') %>
或者,你也可以使用number_with_precision方法来确保数字总是以小数点后两位的精度显示:
<%= number_with_precision(@number, :precision => 2, :delimiter => ',') %>
新语法
number_with_delimiter(@number, delimiter: ",")
如果你想用delimeter赚钱,你可以这么做
number_to_currency(@number)
这也会增加$。如果你使用金钱宝石,那么你可以这样做
Money.new(@number,"USD").format
这也会把$。
number_with_delimiter
ruby的钱
number_to_currency
如果您希望在视图之外添加逗号,并且不想包含某些模块,则可以使用number_to_delimited方法(rails version >= 4.02)。例如:
#inside anywhere
ActiveSupport::NumberHelper.number_to_delimited(1000000) # => "1,000,000"
您可以使用来自ActiveSupport的方法
例如:
ActiveSupport::NumberHelper::number_to_currency(10000.1234,{精度:2,单位:"})