2014-01-30 79 views
0

如何在ruby中使用數字05798300? 當我輸入: 2.0.0p247:031> 05798300 語法錯誤:(IRB):31:無效八進制數字比較Ruby中前導零的數字字符串和格式化整數

2.0.0p247:001> 04704110 => 1280072

我需要檢查數量:04704110是0100000000和09000000.

+2

爲什麼你在前面的0? –

+0

因爲在巴西,街道的聖保羅市地區的郵政編碼初始值爲0 ...我需要驗證用戶通知的郵編是否在聖保羅市:/ – user3251174

+4

您必須將郵政編碼中的數字視爲字符串,而不是整數。 – Casey

回答

1

之間。如果您需要保留前導零,存儲你的郵政編碼爲字符串,你可以把它們比這樣:

test = '04704110' 
lower = '01000000' #assuming eight digits 
upper = '09000000' 

p lower < test && test < upper 
#=> true 

否則,它們的比較結果爲整數,但是當你把它們打印格式化,添加前導零:

test = 4704110 
p "%08d" % test 
#=> "04704110" 
+0

謝謝你:D現在我的代碼工作! – user3251174