Types de données primitives - doc Oracle indique la plage de long
dans Java est -9,223,372,036,854,775,808
à 9,223,372,036,854,775,807
. Mais quand je fais quelque chose comme ça dans mon Eclipse
long i = 12345678910;
il me montre l'erreur "The literal 12345678910 of type int is out of range
".
Il y a 2 questions.
1) Comment initialiser la long
avec la valeur 12345678910
?
2) Tous les littéraux numériques par défaut sont-ils de type int
?
L
: long i = 12345678910L;
.BTW: il n'est pas nécessaire que ce soit une majuscule L, mais les minuscules sont confondues avec 1
plusieurs fois :).
Vous devez ajouter le caractère L
à la fin du numéro pour que Java le reconnaisse comme étant long.
long i = 12345678910L;
Oui.
Voir Types de données primitives qui indique "Un littéral entier est de type long s'il se termine par la lettre L ou l; sinon, il est de type int."
Vous devez ajouter _ majuscule L
à la fin, comme ça
long i = 12345678910L;
Il en va de même pour float avec 3.0f
Ce qui devrait répondre à vos deux questions
Pour initialiser longtemps, vous devez ajouter "L" à la fin.
Il peut être en majuscule ou en minuscule.
Toutes les valeurs numériques sont par défaut int
. Même lorsque vous effectuez une opération de byte
avec un entier quelconque, byte
est d'abord promu en int
, puis toutes les opérations sont effectuées.
Essaye ça
byte a = 1; // declare a byte
a = a*2; // you will get error here
Vous obtenez une erreur parce que 2
est par défaut int
.
Par conséquent, vous essayez de multiplier byte
par int
. Par conséquent, le résultat est transtypé en int
et ne peut pas être attribué à byte
.