我正在尝试使用Java将字符串“ 1000000000000001”转换为以5为基数:Integer number = Integer.parseInt("1000000000000001", 5);
但是,我是gettig NumberFormatException。字符串被修剪,仅包含1和0。有人可以解释为什么我收到此异常吗?
最佳答案
以5为底的数字1000000000000001
等同于以10为底的数字30517578126
(您可以自己验证或使用online tools)。
但是,30,517,578,126
太大而无法容纳int
值。最大值Integer.MAX_VALUE
是2,147,483,647
。这解释了您从parseInt
中获取的异常:
引发NumberFormatException
-如果字符串不包含可解析的int
。
就是这种情况。
您需要使用long
:
public static void main(String[] args) {
long number = Long.parseLong("1000000000000001", 5);
System.out.println(number); // prints "30517578126"
}
关于java - Java NumberFormatException,同时将1000000000000001转换为基数5,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36520764/