找到: int
需要: byte
                             f=f*3;
                                ^
2 错误
public class hello
{
     public static void main(String args[])
{     
                                byte f;
                                f=-3;
       
                             f=f*3;
                                 System.out.println("f=="+f);
}
}
为什么会是这样?没接触byte不了解大家见谅

解决方案 »

  1.   

    byte的精度比int小
    所以byte*int得到的是int
    而你把int赋给byte,这样就可能损失精度咯
      

  2.   

    解决的办法有两种
    1:f*=3;这样会自动转换成byte,就不会引起麻烦了2:f=(byte)(f*3);强制转换
      

  3.   

    JAVA里面
    可以把小型数据直接转换成比它大的数据类型
    如:BYTE可以放到INT里面,INT又可以放到LONG里面
    但是不可以将INT的放入BYTE
    转制转换便可!
    但如果将一个INT A=300的转换为BYTE的话·
    (byte)300
    BYTE的数据最大是256
    那么得到的将是300-256;
    即转换为:BYTE为44
      

  4.   

    f*=3;这样会自动转换成byte,就不会引起麻烦了
    为什么???
    f=(byte)(f*3);强制转换这个我理解了
      

  5.   

    f*=3;这样会自动转换成byte,就不会引起麻烦了 
    f*=3应该跟f=f*3是等价的吧..为什么会自动转换呢?一头雾水中~~