简体   繁体   中英

Java Integer.parseInt failed to parse a string

I'm parsing a string of 15 digits like this:

String str = "100004159312045";
int i = Integer.parseInt(str);

I'm getting an exception when doing so. Why? What are the limitations for Integer.parseInt ? What other options do I have for converting such long string to a number?

Your number is too large to fit in an int which is 32 bits and only has a range of -2,147,483,648 to 2,147,483,647.

Try Long.parseLong instead. A long has 64 bits and has a range of -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807.

because int's maximum value is a little above 2,000,000,000

you can use long or BigInteger

long has double the digits it can store (the max value is square that of int) and BigInteger can handle arbitrarily large numbers

int是32个有符号位,其最大值是2 ^ 31-1 = 2147483647

您尝试解析的值超过了整数的最大大小。

The range of int is between Integer.MAX_VALUE and Integer.MIN_VALUE inclusive (ie from 2147483647 down to -2147483648). You cannot parse the int value of out that range.

You can use long m = Long.parseLong(str); or BigInteger b = new BigInteger(str); for large integer.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM