いくつかの価格があります (例:1000000
と1000
)。価格の種類は関係ありません (これは345000
または532
です)。["1", "000", "000"]
この価格をいくつかの部分 (または)に分割する必要があり["345", "000"]
ます。
どうすればこれができますか。何か案は?
あなたの例には文字列( as としてレンダリングされる)000
のみが含まれているため、次のようにして、数字を3桁のグループに簡単に分割できます。000
Fixnum
0
num = 10000 # your num
res = num.to_s.reverse.scan(/.{1,3}/m).map(&:reverse).reverse
# res = ["10", "000"]
それ以外の場合は、最後の s と残りの数を分割したい場合0
は、次のように簡単に実行できます。
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']