2016-04-25 64 views
2

我想從整數的末尾刪除任意的零。例如,如果我有14260,我想以1426結束。 142600我還想結束1426從一個整數的末尾刪除任何零

我已經看了一圈,找不到整數的解決方案,只是很多人都在討論從浮點數中刪除前導零和零。

回答

5

轉換爲字符串,子和轉換回INT:

142600.to_s.sub(/0+$/,'') # /0+$/ is regex to find all trailing 0s 
#=> "1426" 

14200006000000000.to_s.sub(/0+$/,'').to_i 
#=> 14200006 
+0

好極了,謝謝你。 我可以問一下+ $的意義是什麼?我是否需要從字符串中刪除不同的字符,我是否能夠將該序列中的0替換爲我想要刪除的字符? – Oscady

+0

'/ 0 + $ /'表示您在字符串的末尾查找連續的「0」。是的,你可以用任何想要的字符替換0,它會在字符串結尾查找連續的字符。 – shivam

+0

....或者'14600.to_s [/ - ?\ d * [1-9] /] .to_i'。 –

3

要額外的,你可以處理它像數:

num = 1220000 
num_without_zeros = num 

while num_without_zeros % 10 == 0 do 
    num_without_zeros /= 10 
end 

num_without_zeros 
#=> 122 
+0

雖然是正確的,但一個缺點是你正在失去原來的int。 – shivam

+0

@shivam,我認爲這並不重要,但無論如何,我已經更新了我的答案,謝謝:) – Ilya

+0

它的真實對於OP來說可能並不重要,但是如果不需要它總是更好的保存值:) – shivam