有办法让轨道打印出一个数字与逗号在它?

例如,如果我有一个数字540000000 .34,我可以运行<%= number。函数%>,输出“54,000,000.34”

谢谢!


当前回答

您需要使用number_with_delimiter方法。例如:

<%= number_with_delimiter(@number, :delimiter => ',') %>

或者,你也可以使用number_with_precision方法来确保数字总是以小数点后两位的精度显示:

<%= number_with_precision(@number, :precision => 2, :delimiter => ',') %>

其他回答

对于不使用rails的人:

number.to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1,').reverse

您需要使用number_with_delimiter方法。例如:

<%= number_with_delimiter(@number, :delimiter => ',') %>

或者,你也可以使用number_with_precision方法来确保数字总是以小数点后两位的精度显示:

<%= number_with_precision(@number, :precision => 2, :delimiter => ',') %>

我在开发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中了解更多有关它的信息

这是所有。

我希望这对你们有帮助

您可以使用来自ActiveSupport的方法

例如:

ActiveSupport::NumberHelper::number_to_currency(10000.1234,{精度:2,单位:"})

是的,使用NumberHelper。您正在寻找的方法是number_with_delimiter。

 number_with_delimiter(98765432.98, :delimiter => ",", :separator => ".")
 # => 98,765,432.98