问答详情
源自:3-2 Java中的算术运算符

用整型数当被除数计算时,只能得到整型吗.为什么?

public class HelloWorld{
    public static void main(String[] args) {
  int age1=24;
  int age2=18;
  int age3=36;
  int age4=27;
 double sum=age1+age2+age3+age4;
  double avg=sum/4;
  int minus=age1-age2;
  int newAge=--age1;
  
     System.out.println("年龄总和:"+sum);
     System.out.println("平均年龄:"+avg);
  System.out.println("年龄差值:"+minus);
  System.out.println("自减后的年龄:"+newAge);

 }
}为什么用int sum时算出的avg是整数,用double sum时才能算出精确的avg。我知道int是整型,但是计算avg时是用的是double双精度浮点型的,难道用整型数当被除数计算时,只能得到整型吗.为什么?

提问者:qq_慕村4573083 2020-07-17 21:37

个回答

  • 慕无忌0562946
    2020-07-18 09:26:56

    希望能帮到你

  • 慕无忌0562946
    2020-07-18 09:26:14

    赋值符号优先级来说的话,右边 如果 sum是整型而且除数也是整型,那么在首先判断sum和除数的类型,如果sum都是整型,那么计算出来的数据是整型,然后这个整型在赋值的过程中转成double,所以你看上去还是整型数据

    如果 sum、或者除数任意一个数据是 double类型,这时才会进行类型隐式转换,你可以把  4修改成4.0,SUM即使是整型,输出结果是double类型,你可以试试~