-2

我有一些价格(例如10000001000)。什么样的价格都没有关系(这是可以是345000532)。我需要把这个价格分成几个部分(["1", "000", "000"]["345", "000"])。

我怎么能做到这一点。有任何想法吗?

4

2 回答 2

3

由于您的示例包括000which 只能是一个字符串(呈现为000),您可以通过执行以下操作轻松地将您的数字拆分为 3 位数字组:Fixnum0

num = 10000 # your num
res = num.to_s.reverse.scan(/.{1,3}/m).map(&:reverse).reverse 
# res = ["10", "000"]

否则,如果您想将最后一个0s 和数字的其余部分相除,您可以简单地执行以下操作:

num = 10000 # your num
res = [num.to_s.sub(/0+$/, '') ,num.to_s.scan(/0+$/)[0]] 
# res = ["1", "0000"]
于 2013-07-11T12:45:30.460 回答
1

这是我的看法:

i = 1000000
i.to_s.reverse.chars.each_slice(3).map(&:reverse).map(&:join).reverse # -> ['1', '000', '000']
于 2013-07-11T12:48:01.080 回答