float avg=(float)sum/4可以正确运行。变成4.0为什么又不行了。个人理解sum先被强转换成float,后面/4.0又变成double,double>float,所以错了?
public class HelloWorld{
public static void main(String[] args) {
int age1=24;
int age2=18;
int age3=36;
int age4=27;
int sum = age1+age2+age3+age4;//四个人总和
//类型的默认转换是byte,short,char -- int -- long -- float -- double
//float>int所以不用强制转换
float avg = sum/4;//四个人的总和÷4,求平均值
int minus = age1-age2;//age1,age2的差值
int newAge = --age1;//因为要表达newAge的自减1所以:--x(要放后面)
System.out.println("年龄总和:"+sum);
System.out.println("平均年龄:"+avg);
System.out.println("年龄差值:"+minus);
System.out.println("自减后的年龄:"+newAge);
}
}
/*
有什么不懂得可以问我,我要是不懂相互讨论哈
*/
float avg=(float)(sum/4);
float avg =(float)(sum/4); 就好了。
不用强制转换 直接定义为float就行