J'essaie de créer un tableau de codes postaux.
array = [07001, 07920] ^ from (irb):12 from :0
3 Réponses :
Ruby est d'interpréter des nombres qui ont un 0 de premier ordre comme étant en octal (base 8). Ainsi, les chiffres 8 et 9 ne sont pas valides. P>
Il a probablement plus de sens de stocker des codes postaux comme des chaînes, au lieu de comme des chiffres (pour éviter de devoir se couvrir de zéros chaque fois que vous l'affichez), comme tel: array = ["07001", "07920"] code> p>
Vous apprécierez également ces chaînes la première fois que vous essayez de créer un code postal canadien dans le domaine.
Votre tableau est de chiffres, le principal zéro provoque l'interprétation d'une octale (chiffres valides de 0 à 7). Si ce sont des codes postaux et que le seuil de zéro est important, ils devraient probablement être des chaînes. P>
numéros commençant par La solution de contournement la plus facile serait de simplement écrire les chiffres en format décimal: Cependant, vous mentionnez que vous souhaitez un tableau de codes postaux. Dans ce cas, la solution correcte serait d'utiliser, de puits, d'une matrice de code postal au lieu d'un tableau d'entiers, car les codes postaux ne sont pas des entiers, ce sont des codes postaux. P> 0 code> sont supposés être au format octal, comme des chiffres qui commencent par
0x code> sont supposés être au format hexadécimal. Les chiffres octals ne vont que de
0 code> à
7 code>, donc
9 code> n'est tout simplement pas légal dans un nombre octal. P>
07001 code> en octal est identiel que
3585 code> en décimal (je pense). Ou voulez-vous dire les chiffres en décimal? Ensuite, la solution de contournement la plus facile est de laisser tomber les principaux zéros:
07001 code> est identique que
7001 code> de toute façon. P>