2

このコードがスローするのはなぜNumberFormatExceptionですか?

int a = Integer.parseInt("1111111111111111111111111111111111111111");

intそのための値を取得する方法はString?

4

3 に答える 3

12

int解析しようとしている値が、許容される最大値 ( Integer.MAX_VALUE、または2147483647)よりもはるかに大きいため、 aNumberFormatExceptionがスローされます。long許容される最大値( Long.MAX_VALUE、または)よりも大きいため、その値を格納するに9223372036854775807Lは が必要です。BigInteger

BigInteger veryBig = new BigInteger("1111111111111111111111111111111111111111");

BigIntegerJavadocsから:

不変の任意精度の整数。

于 2013-09-03T17:26:42.043 に答える
2

これは、 の数値文字列がかなり大きいためintです。おそらくこれにはBigInteger.

于 2013-09-03T17:26:36.153 に答える
1

その文字列に整数値はありません。そのため、例外をスローしています。整数の最大値は 2147483647 であり、あなたの値は明らかにそれを超えています。

于 2013-09-03T17:27:08.863 に答える