当我们想定义一个变量来储存一个过大整数(这里举例用2147483648,是因为他已经大出int类型最大值2147483647)
故使用long定义变量,如下:
public class 过大整数储存问题 {
public static void main(String[] args) {
long z = 2147483648;
System.out.println(z);
}
}
显示报错:java: 整数太大
这里产生疑惑,long类型能储存最大值已远远大出我们要储存的值但依然报错。
问题在于:Java在读取一个数时默认是int类型,即我们在将2147483648赋给Z时,已经超出范围。
修改办法:在要储存的整数后加 L 使其以long类型读取
即代码为
public class 过大整数储存问题 {
public static void main(String[] args) {
long z = 2147483648L;
System.out.println(z);
}
}
这里可以看到输出结果:2147483648表明读取和输出正常