0

誰かが私がNumberFormatException.forInputStringこれを得る理由を説明できますか:

string: "01000000000000000000000000000001"
Integer.parseInt(string, 10)

数値の正の int 表現が必要な場合、どうすれば修正できますか?

ありがとう

4

5 に答える 5

5

「0100000000000000000000000000001」は有効ではありませんint

int最小値は -2,147,483,648、最大値は 2,147,483,647 (両端を含む) です。


それをBigIntegerに変換できます:

BigInteger myInt = new BigInteger(myString);
于 2013-05-02T13:21:01.280 に答える
2

Integer.parseInt数値を に解析しますint。これは 32 ビットの符号付き整数です。数1000000000000000000000000000001が多すぎて に収まりませんint

に格納できる最大数intは 2,147,483,647 (2 31 - 1) です。

于 2013-05-02T13:21:34.013 に答える
1

この数は よりもはるかに大きいですInteger.MAX_VALUE

于 2013-05-02T13:20:33.233 に答える
1

を超えそうInteger.MAX_VALUEです。ドキュメントから:

int が持つことができる最大値 2 31 -1 を保持する定数。

これは2147483647です

BigIntegerは、任意の精度の整数、つまり実質的に無制限の整数を格納するため、ここで役立つ場合があります。

于 2013-05-02T13:20:37.593 に答える
0

入力番号 (010000000000000000000000000001) は より大きく、Interger.MAX_VALUE解析可能な文字列ではありません。

2147483647 より大きく -2147483648 より小さい値は有効な整数ではありません。

ドキュメントの詳細

于 2013-05-02T13:20:53.517 に答える