字符串数字格式异常13363190467160024386转换为长时
问题描述:
我试图将numeric String
转换为Long
,但它给了我NumberFormatException
。字符串数字格式异常13363190467160024386转换为长时
我正在NumberFormatException
该字符串13363190467160024386
的Long.parseLong(String s)将
下面是我getting-
java.lang.NumberFormatException: For input string: "13363190467160024386"
任何建议,为什么会发生异常?
答
绝对 - 该数字大于Long.MAX_VALUE
(9223372036854775807)。
使用BigInteger
代替:
BigInteger value = new BigInteger("13363190467160024386");
答
我觉得这个数字太大了签署long
也许尝试一个无符号
永记,显然Java没有一个。 1个之所以C#>的javalong
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
,引发错误。
它太长而不能长 – irreputable