[英]Java Integer.parseInt failed to parse a string
我正在解析這樣的15位數字的字符串:
String str = "100004159312045";
int i = Integer.parseInt(str);
這樣做時我遇到了異常。 為什么? Integer.parseInt
什么限制? 將這么長的字符串轉換為數字,我還有什么其他選擇?
您的數字太大,無法容納32位int
,並且范圍在-2,147,483,648到2,147,483,647之間。
嘗試改用Long.parseLong
。 long
有64位,范圍為-9,223,372,036,854,775,808至9,223,372,036,854,775,807。
因為int的最大值略高於2,000,000,000
您可以使用long或BigInteger
long具有可以存儲的兩位數(最大值是int的平方),BigInteger可以處理任意大數
int是32個有符號位,其最大值是2 ^ 31-1 = 2147483647
您嘗試解析的值超過了整數的最大大小。
int
的范圍在Integer.MAX_VALUE
和Integer.MIN_VALUE
之間(包括2147483647到-2147483648)。 您不能解析超出該范圍的int
值。
您可以使用long m = Long.parseLong(str);
或BigInteger b = new BigInteger(str);
對於大整數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.