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

double的问题

double avg1=78.5;

int rise=5;

double avg2=avg1+rise;

  我想问一下 double 和int自动型转化的关   :是否只能int转化为double型 反过来double型一定不能转化为int型。  这样理解对吗?  还是double行也可以转化为int行    只不过要满足int的字节数必须大于double?

坐等大神回答! 新手疑问比较多 勿喷!!

2 如果是只能int转化为double 是否必须满足目标类型大于源类型?

提问者:无悔欲 2015-08-20 18:31

个回答

  • 卓戈卡奥
    2015-08-20 19:01:12
    已采纳

    • double型可以通过强制类型转换而转换为int型变量,但是因为double本身有8个字节的长度,而int只有4个字节,所以会造成高位字节的丢失。比如:

            double avg1=78.5;
            int avg2=(int)avg1;
            System.out.println(avg2);

           会输出78,后面的0.5就被丢失了。

    • 不是很明白你的这句话:

        目标类型大于源类型

            这里的大于应该理解成存储的字节长度吗?如果是,那么目标是不发生数据丢失的情况的话目标类型的确应该大于源类型