关于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回答
同学你好,定义float类型是不需要强制转换的。可能是同学在定义float类型时没有为float类型变量值后加f。如果没有添加,则需要在float类型变量值后加f,表示这个变量是float类型变量。代码如下:
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题