在Java中解析处理对int来说太大的数字
所以我试图解析一个字符串,该字符串包含一个对于Int存储来说太大的数字。但是我需要字符串的值,因为我要除以它。我可以将字符串解析为长字符串吗
n = Long.parseLong(string);
像那样?或者有没有一种方法可以将字符串除以一个数字,而无需将字符串转换为数字?我使用的代码如下所示:
private static String getFinished(String x, int y){
int word = Integer.parseInt(x);
word = word/y;
我使用的号码是:1980715126555015951540148577071512651650 但我可能会使用数字更长的时间
# 1 楼答案
您正在查找的类是
BigInteger
。或BigDecimal
用于浮点数# 2 楼答案
对。只要这个数字不太大。长/长的范围为-9223372036854775808到+9223372036854775807
另一种选择是使用
BigInteger
(javadoc)。它可以应付更大的数字。(BigInteger
的上限很可能由可用内存量决定。)这需要一个大整数。例如:
注:
BigInteger
没有运算符重载。必须使用显式方法调用李>BigInteger
对象类似于String
对象;i、 它们是不变的。算术方法生成一个新的BigInteger
对象李># 3 楼答案
不,如果不将字符串解析为数字,则不能将其拆分
并且
long num = Long.parseLong(str);
是100%合法的,前提是您使用try/catch块包装它,或者从方法引发异常编辑: 根据您添加的示例字符串,
long
可能不再对您有帮助。检查BigInteger