Ruby有数字格式化类吗?

2izufjch  于 12个月前  发布在  Ruby
关注(0)|答案(5)|浏览(124)

Ruby是否有任何格式化类或方法可以用来格式化货币等数字,或者有任何gem可以做到这一点,或者你必须自己编写?

mkh04yzy

mkh04yzy1#

Ruby拥有所有标准的打印格式化程序,可以通过printf、sprintf或'formatstring' % [var1, ...]使用。

>> '%.2f' % 3.14159 #=> "3.14"
>> '%4s %-4s' % ['foo', 'bar'] #=> " foo bar "
bxfogqkk

bxfogqkk2#

试试这个:

1234567890.123.to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1,').reverse
=> "1,234,567,890.123"

摘自@ paviario在similar thread中的评论

jslywgbw

jslywgbw3#

您可以使用Kernel#sprintf(或Kernel#format)并以这种方式执行。API链接。

w9apscun

w9apscun4#

Ruby提供了Kernel#format类方法,看起来更像python 3.x方法。查看Ruby的博客了解更多详情。这可以用来格式化字符串和数字。还有其他像%e%g用于指数等。
下面是一些例子。

  • number* 使用%f表示 float%d表示 integer
format('%.2f', 2.0)     # => "2.00"
format('%.d', 2.0)      # => "2"
  • string* use %s
format('%.4s', "hello") # => "hell"
format('%6s', "hello")  # => " hello"
format('%-6s', "hello") # => "hello "
i5desfxk

i5desfxk5#

你可以在Rails的JumeView gem中查看ActionView::Helpers::NumberHelper

相关问题