-2
我有一些价格(例如1000000
和1000
)。无论什么样的价格(这可以是345000
或532
)。我需要把这个价格分成几部分(["1", "000", "000"]
或["345", "000"]
)。将fixnum分成红宝石的几个部分
我该怎么做。有任何想法吗?
我有一些价格(例如1000000
和1000
)。无论什么样的价格(这可以是345000
或532
)。我需要把这个价格分成几部分(["1", "000", "000"]
或["345", "000"]
)。将fixnum分成红宝石的几个部分
我该怎么做。有任何想法吗?
由于您的示例包括000
这只能是一个字符串(000
如Fixnum
呈现为0
),你可以在3个位数组这样做容易裂开你的号码:如果你想
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']
太棒了!谢谢! – Eugene
它是否适用于'1000000'? –
@undur_gongor,第二个返回'[“1”,“000000”]',所以是的。第一个返回'[“1”,“000”,“000”]',这也是*意图*。 – Shoe