2013-07-16 82 views

回答

6

帶前導零的數字是八進制數。

030 == 3 * 8 ** 1 + 0 * 8 ** 0 
+0

啊。謝謝。處理前導零的最佳方法是什麼?要刪除它?或者是否有一種轉換方法將其視爲30? –

+0

如果'030'是字符串,則可以通過''030'.to_i'轉換爲Fixnum。 – falsetru

+1

'030'在多種語言中被解釋爲八進制,包括JavaScript和C派生語言。 – tadman

0

你或許應該看看你如何,你必須030轉換爲30的情況下結束。

如果你把任何用戶輸入的,你很可能在瞬間收到用戶輸入,開始用繩子"030",然後調用"030".to_i會給你的30期望的結果。

修正你的代碼使用字符串到int轉換可能是「更乾淨」,而不是結束一個八進制,然後通過去除前導0返回到一個整數。