为了账号安全,请及时绑定邮箱和手机立即绑定

一个小问题

一个小问题

袁力 2015-06-07 13:57:02
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);
查看完整描述

1 回答

?
慕运维4840222

TA贡献1条经验 获得超0个赞

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

查看完整回答
反对 回复 2015-06-07
  • 1 回答
  • 0 关注
  • 1341 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信