我有一些价格(例如1000000
和1000
)。什么样的价格都没有关系(这是可以是345000
或532
)。我需要把这个价格分成几个部分(["1", "000", "000"]
或["345", "000"]
)。
我怎么能做到这一点。有任何想法吗?
由于您的示例包括000
which 只能是一个字符串(呈现为000
),您可以通过执行以下操作轻松地将您的数字拆分为 3 位数字组:Fixnum
0
num = 10000 # your num
res = num.to_s.reverse.scan(/.{1,3}/m).map(&:reverse).reverse
# res = ["10", "000"]
否则,如果您想将最后一个0
s 和数字的其余部分相除,您可以简单地执行以下操作:
num = 10000 # your num
res = [num.to_s.sub(/0+$/, '') ,num.to_s.scan(/0+$/)[0]]
# res = ["1", "0000"]
这是我的看法:
i = 1000000
i.to_s.reverse.chars.each_slice(3).map(&:reverse).map(&:join).reverse # -> ['1', '000', '000']