The literal xyz of type int is out of range

Mathew Donnan picture Mathew Donnan · Aug 17, 2011 · Viewed 93.5k times · Source

I am working with data types at the moment in Java, and if I have understood correctly the type long accepts a value between the ranges of -9,223,372,036,854,775,808 to +9,223,372,036,854,775,807. Now as you can see below, I have create a long variable called testLong, although when I insert 9223372036854775807 as the value, I get an error stating:

The literal 9223372036854775807 of the type int is out of range.

I don't know why it is referring to the long data type as an int.

Anyone have any ideas?

Code:

char testChar = 01;
byte testByte = -128;
int testInt = -2147483648;
short testShort = -32768;
long testLong = 9223372036854775807;
float testFoat;
double testDouble = 4.940656458412;
boolean testBool = true;

Answer

Lukas Eder picture Lukas Eder · Aug 17, 2011

Add a capital L to the end:

long value = 9223372036854775807L;

Otherwise, the compiler will try to parse the literal as an int, hence the error message