有办法让轨道打印出一个数字与逗号在它?
例如,如果我有一个数字540000000 .34,我可以运行<%= number。函数%>,输出“54,000,000.34”
谢谢!
有办法让轨道打印出一个数字与逗号在它?
例如,如果我有一个数字540000000 .34,我可以运行<%= number。函数%>,输出“54,000,000.34”
谢谢!
当前回答
我在开发Rails 6应用程序时遇到了这个挑战。
如果数字是一个项目的价格或与货币有关,那么你可以使用number_to_currency ActionView Helper
以下是如何做到这一点:
number_to_currency("123456789") # => $123456789
number_to_currency(1234567890.50) # => $1,234,567,890.50
number_to_currency(1234567890.506) # => $1,234,567,890.51
number_to_currency(1234567890.506, precision: 3) # => $1,234,567,890.506
number_to_currency(1234567890.506, locale: :fr) # => 1 234 567 890,51 €
number_to_currency(1234567890.50, unit: '₦', delimiter: ',', precision: 0) # => ₦1,234,567,890
number_to_currency(1234567890.50, unit: "R$", separator: ",", delimiter: "") # => R$1234567890,50
您可以在Rails文档:number_to_currency中了解更多有关它的信息
这是所有。
我希望这对你们有帮助
其他回答
下面的代码可以同时用于分隔符和精度(API ref)。
ActiveSupport::NumberHelper.number_to_rounded(1234.532, delimiter: ',', precision: 1)
(或者从视图中只使用number_to_rount_round,不需要前缀)
HTH
对于Ruby Folks:可以创建函数将逗号设置为大整数。
def number_with_comma(numStr)
return numStr.to_s.gsub(/\B(?=(...)*\b)/, ',')
end
a = number_with_comma 1234567
puts a => 1,234,567
x = 9876543
y = number_with_comma x
puts y => 9,876,543
另一种不使用helper的解决方案:格式化2位小数,然后替换。由,
puts(("%.2f" % 2.5666).gsub('.',','))
>> 2,57
对于Ruby的人: 格式化数字(仅限整数),每一组千位之间用逗号分隔。
number = 12345678
numStr1 = number.to_s.reverse.scan(/.{1,3}/).join(',').reverse
puts numStr1 # => 12,345,678
numStr2 = number.to_s.gsub(/\B(?=(...)*\b)/, ',')
puts numStr2 # => 12,345,678
不管有没有Rails,实现这一点的直接方法是:
require 'active_support'
require 'active_support/core_ext/numeric/conversions'
12345.to_s(:delimited) # => "12,345"
12345.6789.to_s(:delimited) # => "12,345.6789"
有关更多选项,请参阅活动支持核心扩展-数字-格式。