Ruby是否有任何格式化类或方法可以用来格式化货币等数字,或者有任何gem可以做到这一点,或者你必须自己编写?
mkh04yzy1#
Ruby拥有所有标准的打印格式化程序,可以通过printf、sprintf或'formatstring' % [var1, ...]使用。
'formatstring' % [var1, ...]
>> '%.2f' % 3.14159 #=> "3.14" >> '%4s %-4s' % ['foo', 'bar'] #=> " foo bar "
bxfogqkk2#
试试这个:
1234567890.123.to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1,').reverse => "1,234,567,890.123"
摘自@ paviario在similar thread中的评论
jslywgbw3#
您可以使用Kernel#sprintf(或Kernel#format)并以这种方式执行。API链接。
Kernel#sprintf
Kernel#format
w9apscun4#
Ruby提供了Kernel#format类方法,看起来更像python 3.x方法。查看Ruby的博客了解更多详情。这可以用来格式化字符串和数字。还有其他像%e和%g用于指数等。下面是一些例子。
%e
%g
%f
%d
format('%.2f', 2.0) # => "2.00" format('%.d', 2.0) # => "2"
%s
format('%.4s', "hello") # => "hell" format('%6s', "hello") # => " hello" format('%-6s', "hello") # => "hello "
i5desfxk5#
你可以在Rails的JumeView gem中查看ActionView::Helpers::NumberHelper。
ActionView::Helpers::NumberHelper
5条答案
按热度按时间mkh04yzy1#
Ruby拥有所有标准的打印格式化程序,可以通过printf、sprintf或
'formatstring' % [var1, ...]
使用。bxfogqkk2#
试试这个:
摘自@ paviario在similar thread中的评论
jslywgbw3#
您可以使用
Kernel#sprintf
(或Kernel#format
)并以这种方式执行。API链接。w9apscun4#
Ruby提供了
Kernel#format
类方法,看起来更像python 3.x方法。查看Ruby的博客了解更多详情。这可以用来格式化字符串和数字。还有其他像%e
和%g
用于指数等。下面是一些例子。
%f
表示 float,%d
表示 integer%s
i5desfxk5#
你可以在Rails的JumeView gem中查看
ActionView::Helpers::NumberHelper
。