The following code is not compiling in Java:
java version "1.6.0_24" OpenJDK Runtime Environment (IcedTea6 1.11.1) (suse-3.1-x86_64) OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
public class XOR
{
public static void main(String[] args)
{
long one = 595082963178094600000L;
}
}
This throws the error:
XOR.java:5: integer number too large: 595082963178094600000
But I've properly indicated it as a long! The following also throws an error:
public class XOR
{
public static void main(String[] args)
{
long one = new Long( "595082963178094600000" );
}
}
This throws:
java.lang.NumberFormatException: For input string: "595082963178094600000"
What am I doing wrong?
Well, maybe because it is too large
?
595082963178094600000 //your value
9223372036854775807 //Long.MAX_VALUE
You will need either BigInteger
or BigDecimal
:
new BigInteger("595082963178094600000")
The values for a long must be be between -9,223,372,036,854,775,808 and 9,223,372,036,854,775,807 inclusive. You cannot assign a value larger than these to a variable that's a long, even if you append an L to it, it will overflow the value and cause an error at compile time.