必要时切换到BigInteger

dog*_*ane 6 java biginteger

我正在阅读一个文本文件,其中包含[1,10 ^ 100]范围内的数字.然后,我对每个数字执行一系列算术运算.我想只在数字超出int/long范围时才使用BigInteger.一种方法是计算字符串中有多少位数,如果有太多则切换到BigInteger.否则我只是使用原始算法,因为它更快.有没有更好的办法?

有没有什么理由为什么Java不能自动执行此操作,如果int太小,切换到BigInteger?这样我们就不用担心溢出了.

Kat*_*one 6

我怀疑使用原始值进行整数和实数的决定(出于性能原因而做)使得该选项无法实现.请注意,Python和Ruby都可以满足您的要求.

在这种情况下,处理较小的特殊情况可能需要做更多的工作(你需要一些自定义类来处理这两种情况),你应该使用它BigInteger.

  • (或使用Python,Ruby,Jython或JRuby) (3认同)