BigDecimal和BigInteger的限制是什么?

Daa*_*ish 2 java biginteger limit bigdecimal numberformatexception

我在一个程序中乘以两个巨大的BigInteger值.它失败了.什么是限制BigIntegerBigDecimal

Pet*_*rey 5

你不会得到NumberFormatException乘以大数.如果产生的数字太大,当数组大小溢出时,你会得到一个神秘的NegativeArraySizeException.

您更有可能出现内存不足错误.

BigInteger的限制为32*2 ^ 32-1位,约为2 ^(40亿).

如果你,你可以得到一个NumberFormatException

  • 从空字节[]创建一个BigInteger
  • 使用signum <-1或> +1
  • 尝试解析基数> 36或<2的数字
  • 有一个非法数字的字符串.

当您获得异常时,您还应该查看消息和堆栈跟踪,因为这通常会为您提供真正的原因.