老师,我这样为什么不行?

来源:2-9 Java中的自动类型转换

编程中

2015-07-13 17:26

public class HelloWorld{

    public static void main(String[] args) {

double avg1=78.5;

int rise=5;

        int avg3=avg1;

int avg2=avg3+rise;

System.out.println("考试平均分:"+avg1);

System.out.println("调整后的平均分:"+avg2);

}

}


写回答 关注

3回答

  • sixGod
    2015-07-13 17:46:17
    已采纳

    简单的说,强制就是不计后果,可能会报错,隐式就是java认为的合理范围内,不会造成什么过错

    比如,int型转成double为什么可以隐式呢,因为int型后面跟多少个0,都不会对数据有什么影响,但double型转成int型时,小数点后的值就会没掉,这个小数点后的值如果是钱,没掉了要你自己负责,因为你强制要转的

    编程中

    非常感谢!受教受教

    2015-07-14 08:15:33

    共 1 条回复 >

  • 残暴之血
    2015-07-17 12:46:40

    public class HelloWorld{

        public static void main(String[] args) {

    double avg1=78.5;

    int rise=5;

            int avg3=avg1;

    int avg2=(int)avg3+rise;

    System.out.println("考试平均分:"+avg1);

    System.out.println("调整后的平均分:"+avg2);

    }

    }

    改成这样应该就可以了吧?int 不包含double,但是可以强制double转换int.

    _Jack_...

    在第5行double转int,值的前面就应该加(int),第6行的值avg3前面不用加了,它已经被强制转成int类型了。

    2015-09-22 22:14:09

    共 1 条回复 >

  • 编程中
    2015-07-13 17:39:49

    原来我把double与int  float的包含关系弄错了

    double为双精度浮点数,float为单精度浮点数,int为整型。int可以稳式转换成float和double,float只能强制转换成int,但是可以隐式转换成double,double只能强制转换成float和int。

    但什么叫强制,什么叫隐式?


Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165178 学习 · 17581 问题

查看课程

相似问题