qowoeo7538 2014-12-21 08: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 08: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条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置