2-4练习提示 incompatible types: possible lossy conversion from double to float

来源:2-4 编程练习

晓舟

2021-03-01 12:44:58

public class DisCountDemo {

    //根据商品总价输出折后总价

       public float zhehoujia(float sum){

           

           float zhehou;

           if(sum<100) zhehou=sum;

           

           else if(sum<=199) zhehou=sum*0.95;

           

           else zhehou=sum*0.85;

           

           return zhehou;

                      

       }

       


public static void main(String[] args) {

//定义对象

     disCount rc = new disCount();

float price=200.0f;

//定义商品总价存放到变量中

System.out.println("折后商品价格为:"+rc.zhehoujia(price));


//调用方法,输出折后商品总价

}

}


写回答

2回答

好帮手慕阿园

2021-03-01

同学你好,同学的代码中zhehou定义的float类型的,在else语句中,使用sum*0.95将结果赋值给zhehou,此时0.95是double类型,所以这里会出现报错,如下

http://img.mukewang.com/climg/603c92ac0926c10303940268.jpg

可以在0.95后面添加f,表示是float类型的数值,如下

http://img.mukewang.com/climg/603c930e09a8028504490131.jpg

祝学习愉快~

0

晓舟

提问者

2021-03-01

public class DisCountDemo {

    //根据商品总价输出折后总价

       public float zhehoujia(float sum){

           

           float zhehou;

           if(sum<100.0) zhehou=sum;

           

           else if(sum<=199.0) zhehou=sum*0.95;

           

           else zhehou=sum*0.85;

           

           return zhehou;                                                                                                                                        

           

           

       }

       


public static void main(String[] args) {

//定义对象                                      

     DisCountDemo rc = new DisCountDemo();

float price=200.0f;

//定义商品总价存放到变量中

System.out.println("折后商品价格为:"+rc.zhehoujia(price));


//调用方法,输出折后商品总价

}

}

//修改了一下还是有问题

1

0 学习 · 16556 问题

查看课程