为什么我得到错误"整数太大"?我最后加了一个"L"

Don*_*mmy 3 java javac long-integer

以下代码未在Java中编译:

java版"1.6.0_24"OpenJDK运行时环境(IcedTea6 1.11.1)(suse-3.1-x86_64)OpenJDK 64位服务器VM(内置20.0-b12,混合模式)

public class XOR
{
    public static void main(String[] args)
    {
        long one = 595082963178094600000L;
    }
}
Run Code Online (Sandbox Code Playgroud)

这会引发错误:

XOR.java:5: integer number too large: 595082963178094600000
Run Code Online (Sandbox Code Playgroud)

但我已经恰当地表明它很长!以下内容也会引发错误:

public class XOR
{
    public static void main(String[] args)
    {
        long one = new Long( "595082963178094600000" );
    }
}
Run Code Online (Sandbox Code Playgroud)

抛出:

java.lang.NumberFormatException: For input string: "595082963178094600000"
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Tom*_*icz 17

好吧,也许是因为它 too large

595082963178094600000  //your value
  9223372036854775807  //Long.MAX_VALUE
Run Code Online (Sandbox Code Playgroud)

您将需要BigIntegerBigDecimal:

new BigInteger("595082963178094600000")
Run Code Online (Sandbox Code Playgroud)