什么是非法八进制数字?

我正在尝试制作一系列邮政编码。
array = [07001, 07920]
返回:
array = [07001, 07920]
                  ^
    from (irb):12
    from :0
从来没见过这个。任何解决方法?     
已邀请:
Ruby正在解释具有前导0的数字为八进制(基数为8)。因此,数字8和9无效。 将邮政编码存储为字符串而不是数字可能更有意义(以避免在显示时用零填充),如下所示:
array = ["07001", "07920"]
    
假设以
0
开头的数字是八进制格式,就像以
0x
开头的数字一样,假设是十六进制格式。八进制数字仅从
0
7
,因此
9
在八进制数字中根本不合法。 最简单的解决方法是简单地用十进制格式写出数字:八进制中的
07001
与十进制中的
3585
相同(我认为)。或者你的意思是用十进制数字写?然后,最简单的解决方法是不使用前导零:
07001
7001
相同。 但是,您提到需要一组邮政编码。在这种情况下,正确的解决方案是使用一个ZIP代码数组而不是整数数组,因为邮政编码不是整数,而是邮政编码。     
您的数组是数字,因此前导零使其被解释为八进制(有效数字0-7)。如果这些是邮政编码,并且前导零很重要,那么它们应该是字符串。     

要回复问题请先登录注册