字符串数字格式异常13363190467160024386转换为长时

字符串数字格式异常13363190467160024386转换为长时

问题描述:

我试图将numeric String转换为Long,但它给了我NumberFormatException字符串数字格式异常13363190467160024386转换为长时

我正在NumberFormatException该字符串13363190467160024386

的Long.parseLong(String s)将

下面是我getting-

java.lang.NumberFormatException: For input string: "13363190467160024386" 

任何建议,为什么会发生异常?

+6

它太长而不能长 – irreputable

绝对 - 该数字大于Long.MAX_VALUE(9223372036854775807)。

使用BigInteger代替:

BigInteger value = new BigInteger("13363190467160024386"); 

我觉得这个数字太大了签署long

也许尝试一个无符号 long 永记,显然Java没有一个。 1个之所以C#>的java

2^64 = 1.8446744e + 19

因为是Long的范围之外。

System.out.println(Long.MAX_VALUE); 
System.out.println("13363190467160024386"); 

打印: -

9223372036854775807 
13363190467160024386 

您应该使用BigInteger来存储数字大于。

最大长时间是:

9223372036854775807 

你的数字是比这更大:

13363190467160024386 

你的数量超过long的限制,这是2^63,大约9E18。你的电话号码大致为1.3E14,引发错误。