发生情况:当某一种类型的数值已经达到了此类型能够保存的最大值之后,再继续扩大,或者达到了最小值后再继续缩小,就会出现数据溢出问题。
举例1:
public class App {
public static void main(String[] args) throws Exception {
int a = 2147483647;
int b = 1991;
int c = a + b;
System.out.println(c); // -2147481658
}
}
举例2:
public class App {
public static void main(String[] args) throws Exception {
int a = -2147483647;
int b = 1991;
int c = a-b;
System.out.println(c); //2147481658
}
}
解决方案:
将能够保存的数值范围小的类型转换成能够保存数值多的类型
例如:int–>long float–>double