问答详情
源自:2-9 Java中的自动类型转换

如果我这样写可以么?

public class HelloWorld{
    public static void main(String[] args) {
        double avg1=78.5;
        int rise=5;
        double avg2=rise+avg1;
        System.out.println("考试平均分:"+avg1);
        System.out.println("调整后的平均分:"+avg2);
    }
}

但 double 类型不能自动转换为 int 类型,怎么理解?

提问者:奚子辰爸爸 2018-04-21 18:41

个回答

  • agigia
    2018-05-19 13:48:54

    (左侧栏里有说。int转换成double是自动类型转换,将double转换成int才是强制类型转换)

    2.  目标类型大于源类型,如 double 类型长度为 8 字节, int 类型为 4 字节,因此 double 类型的变量里直接可以存放 int 类型的数据,但反过来就不可以了

  • qq_霍格沃茨_0
    2018-04-21 20:51:42

    int类型字节比double少,这个时候只能强制类型转换

    public class HelloWorld{
        public static void main(String[] args) {
            double avg1=78.5;
            int rise=5;
            double avg2=(double)rise+avg1;//不同的地方在这一行
            System.out.println("考试平均分:"+avg1);
            System.out.println("调整后的平均分:"+avg2);
        }
    }


  • qq_霍格沃茨_0
    2018-04-21 20:51:05

    int类型字节比double少,这个时候只能强制类型转换

    public class HelloWorld{
        public static void main(String[] args) {
            double avg1=78.5;
            int rise=5;
            double avg2=(double)rise+avg1;
            System.out.println("考试平均分:"+avg1);
            System.out.println("调整后的平均分:"+avg2);
        }
    }