我正在读取一个文本文件,其中包含 [1, 10^100] 范围内的数字。然后我对每个数字执行一系列算术运算。仅当数字超出 int/long 范围时,我才想使用 BigInteger。一种方法是计算字符串中有多少位数字,如果太多则切换到 BigInteger。否则我只会使用原始算术,因为它更快。有没有更好的办法?
是否有任何原因导致 Java 无法自动执行此操作,即如果 int 太小则切换到 BigInteger?这样我们就不必担心溢出。
最佳答案
我怀疑对整数和实数使用原始值的决定(出于性能原因这样做)使该选项成为不可能。请注意,Python 和 Ruby 都会按照您的要求进行操作。
在这种情况下,处理较小的特殊情况可能需要做更多的工作(您需要一些自定义类来处理这两种情况),您应该只使用 BigInteger
.
关于java - 如有必要,切换到 BigInteger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2587060/