プログラムで 2 つの巨大な BigIntegervalues を乗算していました。失敗しました。BigInteger
との制限は何BigDecimal
ですか?
質問する
9519 次
2 に答える
5
大きな数を乗算しても NumberFormatException は発生しません。生成された数が大きすぎる場合、配列のサイズがオーバーフローするため、不可解な NegativeArraySizeException が発生します。
メモリ不足エラーが発生する可能性が高くなります。
BigInteger の制限は 32 * 2^32-1 ビット、または約 2^(40 億) です。
次の場合、NumberFormatException を取得できます。
- 空のバイトから BigInteger を作成します[]
- signum < -1 または > +1 を使用する
- 基数 >36 または < 2 の数値を解析してみてください
- 不正な数字を含む文字列があります。
例外が発生した場合は、メッセージとスタック トレースも確認する必要があります。これにより通常、本当の原因がわかります。
于 2013-07-30T11:37:37.890 に答える
1
メモリを除いて制限があるべきではありませんが、クラスの実装に応じて制限がある可能性があります (たとえば、int または long のフィールドがある場合があります)。
于 2013-07-30T11:48:43.497 に答える