我正在尝试制作一系列邮政编码。
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
被假定为八进制格式,就像以 开头的数字0x
被假定为十六进制格式一样。八进制数字只能从0
to 7
,因此9
在八进制数字中根本不合法。
最简单的解决方法是简单地以十进制格式编写数字:07001
八进制与3585
十进制相同(我认为)。或者你的意思是用十进制写数字?然后,最简单的解决方法是去掉前导零:无论如何07001
都是一样的。7001
但是,您提到您需要一个邮政编码数组。在这种情况下,正确的解决方案是使用邮政编码数组而不是整数数组,因为邮政编码不是整数,它们是邮政编码。
您的数组是数字,因此前导零会导致它被解释为八进制(有效数字 0-7)。如果这些是邮政编码,并且前导零很重要,那么它们可能应该是字符串。