为了账号安全,请及时绑定邮箱和手机立即绑定

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

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 回答

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

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

2 回复 有任何疑惑可以回复我~
#1

编程中 提问者

非常感谢!受教受教
2015-07-14 回复 有任何疑惑可以回复我~

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.

0 回复 有任何疑惑可以回复我~
#1

_Jack_Han_

在第5行double转int,值的前面就应该加(int),第6行的值avg3前面不用加了,它已经被强制转成int类型了。
2015-09-22 回复 有任何疑惑可以回复我~

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

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

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


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165652    人
  • 解答问题       17587    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信