我正在尝试使用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_VALUE2,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/

10-11 06:22