郵便番号の配列を作成しようとしています。
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)であると解釈しています。したがって、数字の8と9は無効です。
郵便番号を数値ではなく文字列として保存する方がおそらく理にかなっています(表示するたびにゼロを埋める必要がないようにするため)。array = ["07001", "07920"]
で始まる0
数値は、16進数形式であると想定されるのと同様に、8進数形式であると0x
想定されます。0
8進数はからまでしか移動しない7
ため9
、8進数では正しくありません。
最も簡単な回避策は、数値を10進数形式で記述することです07001
。8進数は10進数と同じです3585
(私は思います)。それとも、数字を10進数で書くつもりでしたか?次に、最も簡単な回避策は、先行ゼロを省略することです。とにかく07001
同じ7001
です。
ただし、郵便番号の配列が必要であるとのことです。その場合、正しい解決策は、整数の配列ではなく、郵便番号の配列を使用することです。郵便番号は整数ではなく、郵便番号です。
配列は数値であるため、先行ゼロにより、8進数(有効な数字0〜7)として解釈されます。これらが郵便番号であり、先行ゼロが重要である場合は、おそらく文字列である必要があります。