2012-11-08 47 views
1

我試圖將numeric String轉換爲Long,但它給了我NumberFormatException字符串數字格式異常13363190467160024386轉換爲長時

我正在NumberFormatException該字符串13363190467160024386

的Long.parseLong(String s)將

下面是我getting-

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

任何建議,爲什麼會發生異常?

+6

它太長而不能長 – irreputable

回答

14

絕對 - 該數字大於Long.MAX_VALUE(9223372036854775807)。

使用BigInteger代替:

BigInteger value = new BigInteger("13363190467160024386"); 
1

我覺得這個數字太大了簽署long

也許嘗試一個無符號 long 永記,顯然Java沒有一個。 1個之所以C#>的java

2^64 = 1.8446744e + 19

2

因爲是Long的範圍之外。

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

打印: -

9223372036854775807 
13363190467160024386 

您應該使用BigInteger來存儲數字大於。

1

最大長時間是:

9223372036854775807 

你的數字是比這更大:

13363190467160024386 
1

你的數量超過long的限制,這是2^63,大約9E18。你的電話號碼大致爲1.3E14,引發錯誤。