为什么平均的结果是26.0,不是26.25
平均数计算不是在age1自减之前的吗?
平均数计算不是在age1自减之前的吗?
2019-12-30
public static void main(String[] args) { int age1=24; int age2=18; int age3=36; int age4=27; int sum=age1+age2+age3+age4; BigDecimal sum1 = new BigDecimal(sum); BigDecimal four = new BigDecimal("4"); BigDecimal avg = sum1.divide(four); int minus=age1-age2; int newAge=--age1; System.out.println("年龄总和:"+sum); System.out.println("平均年龄:"+avg); System.out.println("年龄差值:"+minus); System.out.println("自减后的年龄:"+newAge);
这个数据类型的精度问题,还需要自身多去看看基础知识。这里我使用BigDecimal。这个可以传很多类型的参数进去转成BigDecimal,推荐使用String类型的。
以后你做什么高精度的业务逻辑也要使用这个进行计算。
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;
float avg=sum/4;
int minus=age1-age2;
int newAge=--age1;
System.out.println("年龄总和:"+sum);
System.out.println("平均年龄:"+avg);
System.out.println("年龄差值:"+minus);
System.out.println("自减后的年龄:"+newAge);
}
}
举报