一个小问题


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;

        double avg=sum/4;    //4换成4.0为什么结果不一样啊??????????

        int minus=age1-age2;

        int newAge=--age1;

   System.out.println("年龄总和:"+sum);

    System.out.println("平均年龄:"+avg);

System.out.println("年龄差值:"+minus);

System.out.println("自减后的年龄:"+newAge);


袁力
浏览 1373回答 1
1回答

慕运维4840222

这里面是数据类型的转换问题,用4除的时候,因为sum 和 4 都是int型变量,所以最后的结果也是int型(如果有小数会舍去),然后是用int型的结果赋值给double类型的avg变量。而用4.0(这里隐含的是double型数据)去除,得到的结果会自动的转为精确度更高的double型(这时就成了double类型的结果赋值给double类型了)。这就导致了两者的结果不一样。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java