qowoeo7538 2014-12-21 00:15 采纳率: 73.7%
浏览 1640
已采纳

JAVA类型转换的问题……。

     byte b = 20;         //20是为默认类型int类型。大类型赋小类型却不用转型。
        float f = 3.25F;    //3.25是为默认类型double类型。大类型赋小类型要转型。
        //为什么第一个不需要转型?
//*************************************************
        byte b1=20;
        byte b2= 30;
        byte b3= b+b1;      //编译报错,因为b+b1的默认类型是int,所以需要强转;

        float a = 30.0f;
        float a1 = 40.0f;
        float a2= a+a1;     //这里为什么编译能通过,难道a+a2不是为默认类型double吗

  • 写回答

2条回答 默认 最新

  • SeAL80s 2014-12-21 00:33
    关注

    你刚刚定义了一个byte 类型的20,为什么要转型?
    3.25F,F只是标记前面的3.25是个float类型。难道你要这样定义吗float f =(double)3.25F ?这是个什么语法呢...
    在刚刚定义数据类型的时候,不涉及转换,因为你定义的就是该类型。在之后的赋值或调用的时候才涉及类型转换。
    比如:
    byte a =20
    short b=30
    int c = a+b
    在计算c = a+b 的时候才有类型转换,float同理

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部