定义代码如下
int a = Integer.MAX_VALUE;
int b = 1;
double c = 0;
c = a + b;
以上这段代码,虽然不会报错,但是计算结果精度有问题。
现象:
c得到的是一个溢出的结果。
------------------------------------
原因:
先把 a + b 为 int,这时已经溢出了。。。
再把 int 强制转换为 double
定义代码如下
int a = Integer.MAX_VALUE;
int b = 1;
double c = 0;
c = a + b;
以上这段代码,虽然不会报错,但是计算结果精度有问题。
现象:
c得到的是一个溢出的结果。
------------------------------------
原因:
先把 a + b 为 int,这时已经溢出了。。。
再把 int 强制转换为 double