关于float和double转换的疑问

来源:2-4 编程练习

墙头总是换个不停

2020-07-03 00:31:12

public class DisCountDemo {

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

    public double dis(double n){

      double n1=1;

        if(n<100)

        n1=n;

        else if(n<199)

        n1=n*0.95;

        else 

        n1=0.85*n;

       

       

        return n1;

    }

public static void main(String[] args) {

//定义对象

DisCountDemo discount=new DisCountDemo();

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

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

double dis1=discount.dis(150);

System.out.println("折后商品总价为:"+dis1);

}

}

这是double的,能正常输出

我 想用float格式的时候,把所有double都换成float,在eclipse中实验的时候,提示我要强制转换

      else if(n<199f)


        n1=(float) (n*0.95);


        else 


        n1=(float) (0.85*n);

想问一下这里面n不是已经转换成float了么,为啥还提示我输出n1要加强制转换?还有就是在实际应用中,是不是很少有人用float,不然天天报错真够烦的。。。

写回答

1回答

好帮手慕小尤

2020-07-03

同学你好,定义float类型是不需要强制转换的。可能是同学在定义float类型时没有为float类型变量值后加f。如果没有添加,则需要在float类型变量值后加f,表示这个变量是float类型变量。代码如下:

http://img.mukewang.com/climg/5efea71c096778e906050503.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0

0 学习 · 16556 问题

查看课程