请教大家double a=89,b=90,c=60;
double avg=((a+b+c)/3);
System.out.println(avg);
输出结果是79.66666666666667
int a=89,b=90,c=60;
double avg=(a+b+c)/3;
System.out.println(avg);
结果是79.0
为什么呢?
double avg=((a+b+c)/3);
System.out.println(avg);
输出结果是79.66666666666667
int a=89,b=90,c=60;
double avg=(a+b+c)/3;
System.out.println(avg);
结果是79.0
为什么呢?
所以上面的计算出的是一个double值而下面
int/int = int
下面计算出来的是int值。然后转成double,所以小数字后面的都丢失了。
(a+b+c)/3 还是int类型的,计算结果被自动转型为double
double a=89==>a=89.00...
这两个结果都被转换为了double,但是转换的时间不一样,所以结果不一样。