![](/img/trans.png)
[英]java - Exception in thread “main” java.lang.NumberFormatException: For input string: “” at
[英]Exception in thread “main” java.lang.NumberFormatException: For input string: “3291105000”
為什么會這樣? 我正在解析的字符串看起來很像int。 該程序正在從一個文件讀取,我知道它的工作量最大,因為這個數字在列表中。 有任何想法嗎? 此外,該程序正在解析超過22億的整數,所以我不知道它是否是一個大小問題。
帶符號的32位int
只能大到2 ^ 31或0x7FFFFFFF(2,147,483,647)。 您需要使用更大的數據類型。 long
會讓你達到2 ^ 63。 或者BigInteger類將為您提供任意大小的整數。
int
的最小值為-2,147,483,648
,最大值為2,147,483,647
(含),您的數字(來自字符串)超出范圍
使用long
而不是Long.parseLong(3291105000)
會對你Long.parseLong(3291105000)
使用long
,可以保存64位整數。
int
s只能容納大約20億的整數 long
s可以保持整數〜9e18 像其他人說的那樣,這個數字明顯超出了int的范圍,因此你得到了例外。
4個字節,有符號(二進制補碼)。 -2,147,483,648至2,147,483,647。 像所有數字類型一樣,int可以轉換為其他數字類型(byte,short,long,float,double)。 當完成有損轉換(例如,int到byte)時,轉換以較小類型的長度為模。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.