1

に変換しようとしてnumeric StringLongますが、それは私に与えていますNumberFormatException

私はNumberFormatExceptionこの文字列を取得しています13363190467160024386

Long.parseLong(String s)

以下は私が得ている例外です-

java.lang.NumberFormatException: For input string: "13363190467160024386"

なぜそれが起こっているのですか?

4

5 に答える 5

14

Long.MAX_VALUE絶対に-その数は(9223372036854775807)よりも大きいです。

BigInteger代わりに使用してください:

BigInteger value = new BigInteger("13363190467160024386");
于 2012-11-08T20:39:24.357 に答える
2

の範囲外ですのでLong

System.out.println(Long.MAX_VALUE);
System.out.println("13363190467160024386");

プリント:-

9223372036854775807
13363190467160024386

BigIntegerそれより大きい数を格納するために使用する必要があります。

于 2012-11-08T20:40:08.210 に答える
1

署名するには数が多すぎると思いますlong

おそらく、署名されていlongないネバーマインドを試してみてください。どうやらJavaにはそれがありません。c#>javaのもう1つの理由

2 ^ 64 = 1.8446744e + 19

于 2012-11-08T20:39:46.353 に答える
1

最大長は次のとおりです。

9223372036854775807

あなたの数はこれよりも大きいです:

13363190467160024386
于 2012-11-08T20:40:25.587 に答える
1

あなたの数は、、またはおおよその制限を超えてlong2^63ます9E18。あなたの番号は大まかに1.3E14、エラーを引き起こしています。

于 2012-11-08T20:40:58.523 に答える