Java long number too large error?

All literal numbers in java are by default ints, which has range -2147483648 to 2147483647 inclusive.

Your literals are outside this range, so to make this compile you need to indicate they’re long literals (ie suffix with L):

long min = -9223372036854775808L;
long max = 9223372036854775807L;

Note that java supports both uppercase L and lowercase l, but I recommend not using lowercase l because it looks like a 1:

long min = -9223372036854775808l; // confusing: looks like the last digit is a 1
long max = 9223372036854775807l; // confusing: looks like the last digit is a 1

Java Language Specification for the same

An integer literal is of type long if it is suffixed with an ASCII letter L or l (ell); otherwise it is of type int (ยง4.2.1).

Leave a Comment