java - BigDecimal 和 BigInteger 的限制是什么?

标签 java limit biginteger bigdecimal numberformatexception

我在一个程序中将两个巨大的 BigInteger 值相乘。它失败了。 BigInteger 的限制是什么?和BigDecimal

最佳答案

乘以大数时不会出现 NumberFormatException。如果生成的数字太大,您将得到一个神秘的 NegativeArraySizeException,因为数组的大小溢出。

您更有可能遇到内存不足错误。

BigInteger 的限制为 32 * 2^32-1 位或大约 2^(40 亿)。

如果您这样做,您可能会收到 NumberFormatException

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

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

关于java - BigDecimal 和 BigInteger 的限制是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17945985/

相关文章:

JOIN-Query 中的 MySQL Bug LIMIT 更改记录中的值

kubernetes - Kubernetes发布要求CPU

java - 动态规划 非常大的数据值(value)

java - 为什么有 BigInteger(String) 而没有 BigInteger(long)?

java - java JRE linux 的默认源是什么

Java 帮助 - MySQL - SQLConnector "recurse infinitely"& 控制台打印无限

java - 无法合并两个数组列表

java - 将光标放在 EditText 中文本的末尾

Android Image Picker 从图库中选择多张图片,最多 5 张

Java 的 BigInteger C# 以 Base 32 表示