刚开始接触java我发现他跟C这些有些不一样,比如,给float赋值的时候,如果是小数必须在后面加f,因为小数自动的被认为了是double,但是把未丢失精度的整数赋给char,short,byte的时候为什么就正常呢,按道理来说将这里的赋值的整数(int)要强制转换为对应的类型才对啥,难道是因为初始化的过程就带有强制转换的过程?不知道我这样理解是否正确

解决方案 »

  1.   

    个人认为 float和double的区别是二进制表示方法的区别,而不是二进制位数差异造成的int赋值给char short 什么的 应该自动截断了吧double转float就不能那么简单的办事了吧无责任回答  
      

  2.   

    int i = 10;
    char c = i; //这样不行吧?需要强行转换的,short,byte一样的

    char c = (char)i;LZ说能正常?是指什么,如果是指赋值的话,应该不行的,必须要转换的,你确定你不转换也可以了?
      

  3.   


    他意思大概是 char c = 10;
    酱紫?
      

  4.   


    正解,确实不行
    http://www.cnblogs.com/haifg/archive/2011/07/23/2115112.html