OVH Cloud OVH Cloud

Coversion type long

4 réponses
Avatar
Gerald
Voilà, j'ai un problème de conversion:

Je sais qu'une valeur de type long va de -9223372036854775808 à
9223372036854775807. Cependant, lorsque j'essaye de faire :

Long monLong = new Long(9999999999);

J'ai une erreur "The literral 9999999999 of type int is out of range", alors
que ce n'est pas un int mais un long!!

Par contre, si je fais :

Long monLong2 = Long.decode("9999999999"); cela passe très bien.

Pourquoi est ce que le constructeur Long ne détecte pas que 9999999999 fait
partie de l'intervalle d'une valeur long?

Merci !

4 réponses

Avatar
Johann Burkard
Gerald wrote:
Je sais qu'une valeur de type long va de -9223372036854775808 à
9223372036854775807. Cependant, lorsque j'essaye de faire :

Long monLong = new Long(9999999999);


Il te faut new Long(9999999999L);.
^

Johann
--
Ohje... aber das weiß ich doch! aber ich bin eben krank, deshalb darf
ich das alles und dicke frauen lieben mich sogar dafür.
("albernanhut" in )

Avatar
Isammoc
"Gerald" écrivait
news:42b697b5$0$32719$:

Voilà, j'ai un problème de conversion:

Je sais qu'une valeur de type long va de -9223372036854775808 à
9223372036854775807. Cependant, lorsque j'essaye de faire :

Long monLong = new Long(9999999999);

J'ai une erreur "The literral 9999999999 of type int is out of range",
alors que ce n'est pas un int mais un long!!

Par contre, si je fais :

Long monLong2 = Long.decode("9999999999"); cela passe très bien.

Pourquoi est ce que le constructeur Long ne détecte pas que 9999999999
fait partie de l'intervalle d'une valeur long?


Parce que pour le parseur, une série de chiffres sans format est un
int...

AMHA, il faut mettre :

Long monLong = new Long(9999999999L);

ou encore:
Long monLong = 9999999999L;



Merci !


De rien...

Isammoc

Avatar
OwnOwl
Voilà, j'ai un problème de conversion:

Je sais qu'une valeur de type long va de -9223372036854775808 à
9223372036854775807. Cependant, lorsque j'essaye de faire :

Long monLong = new Long(9999999999);

J'ai une erreur "The literral 9999999999 of type int is out of range", alors
que ce n'est pas un int mais un long!!

Par contre, si je fais :

Long monLong2 = Long.decode("9999999999"); cela passe très bien.

Pourquoi est ce que le constructeur Long ne détecte pas que 9999999999 fait
partie de l'intervalle d'une valeur long?

Merci !




il faut lui dire au compilateur que c'est un long :

Long monLong = new Long(9999999999L);

Avatar
Francis JUGE-BOIRARD
Isammoc wrote:

"Gerald" écrivait
news:42b697b5$0$32719$:


Voilà, j'ai un problème de conversion:

Je sais qu'une valeur de type long va de -9223372036854775808 à
9223372036854775807. Cependant, lorsque j'essaye de faire :

Long monLong = new Long(9999999999);

J'ai une erreur "The literral 9999999999 of type int is out of range",
alors que ce n'est pas un int mais un long!!

Par contre, si je fais :

Long monLong2 = Long.decode("9999999999"); cela passe très bien.

Pourquoi est ce que le constructeur Long ne détecte pas que 9999999999
fait partie de l'intervalle d'une valeur long?



Parce que pour le parseur, une série de chiffres sans format est un
int...

AMHA, il faut mettre :

Long monLong = new Long(9999999999L);

ou encore:
Long monLong = 9999999999L;
Valable uniquement en jdk1.5 (5.0 pour les fan de marketing).





Merci !



De rien...

Isammoc