我想製作一個郵政編碼數組。什麼是非法八進制數字?
array = [07001, 07920]
這將返回:
array = [07001, 07920]
^
from (irb):12
from :0
之前從來沒有見過這個。任何解決方法?
我想製作一個郵政編碼數組。什麼是非法八進制數字?
array = [07001, 07920]
這將返回:
array = [07001, 07920]
^
from (irb):12
from :0
之前從來沒有見過這個。任何解決方法?
Ruby正在將具有前導0的數字解釋爲八進制數(基數8)。因此數字8和9是無效的。
它可能更有意義存儲郵政編碼爲字符串,而不是作爲數字(以避免與每當你顯示它零板),因爲這樣的:array = ["07001", "07920"]
你的陣列是一個數字,所以前導零導致它被解釋爲八進制(有效數字0-7)。如果這些是郵政編碼,並且前導零很重要,那麼它們應該是字符串。
以0
開頭的數字被假定爲八進制格式,就像以0x
開頭的數字被假定爲十六進制格式一樣。八進制數字只從0
到7
,因此9
在八進制數字中不合法。
最簡單的解決方法是簡單地寫十進制格式的數字:07001
八進制數與十進制數中的3585
相同(我認爲)。還是你的意思是用十進制來寫數字?然後,最簡單的解決方法是取消前導零:07001
總是與7001
相同。
但是,您提到您需要一系列郵政編碼。在這種情況下,正確的解決方案是使用一系列郵政編碼而不是整數數組,因爲郵政編碼不是整數,而是郵政編碼。
您第一次嘗試將加拿大郵政編碼添加到字段中時,您還將欣賞這些字符串。 – jdl 2011-03-05 19:54:33