203 votes

Initialiser un long en Java

Types de données primitifs - oracle doc dit que la gamme de long en Java est -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 . Mais quand je fais quelque chose comme ça dans mon éclipse

long i = 12345678910;

il me montre " The literal 12345678910 of type int is out of range " erreur.

Il y a 2 questions.

1) Comment initialiser le long avec la valeur 12345678910 ?

2) Tous les littéraux numériques sont-ils par défaut de type int ?

409voto

MByD Points 78505
  1. Vous devez ajouter L : long i = 12345678910L; .
  2. Sí.

BTW : il n'est pas nécessaire que ce soit un L majuscule, mais les minuscules sont confondues avec les L. 1 plusieurs fois :).

56voto

Jack Edmonds Points 10264
  1. Vous devez ajouter le L à la fin du nombre pour que Java le reconnaisse comme un long.

    long i = 12345678910L;
  2. Sí.

Voir Types de données primitives qui dit "Un littéral entier est de type long s'il se termine par la lettre L ou l ; sinon il est de type int".

38voto

Amir Raminfar Points 17939

Vous devez ajouter des majuscules L à la fin comme ceci

long i = 12345678910L;

Il en va de même pour le flotteur avec 3.0f

Ce qui devrait répondre à vos deux questions

15voto

Suraj Dubey Points 296

Pour initialiser le long, vous devez ajouter "L" à la fin.
Il peut être soit en majuscules, soit en minuscules.

Toutes les valeurs numériques sont par défaut int . Même lorsque vous effectuez une opération de byte avec un nombre entier quelconque, byte est d'abord promu à int puis les opérations éventuelles sont effectuées.

Essayez ceci

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 .
Vous essayez donc de multiplier byte con int . Le résultat est donc tapé dans int qui ne peut pas être réaffecté à byte .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X