Ruby interpretiert Zahlen mit einer führenden 0 als oktal (Basis 8). Daher sind die Ziffern 8 und 9 nicht gültig.
Es ist wahrscheinlich sinnvoller, Postleitzahlen als Zeichenfolgen anstatt als Zahlen zu speichern (um zu vermeiden, dass bei der Anzeige immer Nullen aufgefüllt werden müssen): array = ["07001", "07920"]
Ihr Array besteht aus Zahlen, so dass die führende Null als oktal interpretiert wird (gültige Ziffern 0-7). Wenn dies Postleitzahlen sind und die führende Null signifikant ist, sollten sie wahrscheinlich Zeichenfolgen sein.
Zahlen, die mit 0
beginnen, werden im oktalen Format angenommen, genauso wie Zahlen, die mit 0x
beginnen, als hexadezimal angenommen werden. Oktalziffern gehen nur von 0
nach 7
, also ist 9
in einer Oktalzahl einfach nicht legal.
Am einfachsten wäre es, die Zahlen einfach im Dezimalformat zu schreiben: 07001
in oktal ist gleich wie 3585
in dezimal (glaube ich). Oder wollten Sie die Zahlen dezimal schreiben? Die einfachste Lösung besteht dann darin, die führenden Nullen wegzulassen: 07001
ist gleich wie 7001
auf jeden Fall.
Sie erwähnen jedoch, dass Sie eine Reihe von Postleitzahlen wünschen. In diesem Fall wäre die richtige Lösung, ein Array von Postleitzahlen anstelle eines Arrays von Ganzzahlen zu verwenden, da Postleitzahlen keine Ganzzahlen sind, sondern Postleitzahlen.
Tags und Links ruby ruby-on-rails octal