因为浮点数做运算,比如你这里的相加,
编译器会默认都转成double类型,而你要返回float,当然不行啦
除非强制转换:
return (float) (a+b);

解决方案 »

  1.   

    float转int精度会丢失,所以强制将int转float
      

  2.   

    public class Try
    {
    public static void main(String []args)
    {
    Try try1=new Try();

    System.out.println(try1.add1(1,2.1));
    System.out.println(try1.add2(1,3.1)); }
    public float add1(int a, float b)
    {
    return a+b;
    }
    public double add2(int a,double b)
    {
    return a+b;
    }
    }无法将add1(int,float)应用于(int,double)
    System.out.println(try1.add1(1,2.1));
      

  3.   

    2.1 浮点数默认是double的,不能够直接转成float
    可以这样调用
    System.out.println(try1.add1(1,2.1f));

    System.out.println(try1.add1(1,(float)2.1));
      

  4.   

    2.1是double类型,double不会隐式转换成float,所以保错啊
    2.1f才是float
      

  5.   

    这题有点问题,大家都能编译过,有个大的,就会按大的转换,自动转换,放double也一样,2个小的都向上转换,