黑马程序员技术交流社区

标题: 自动提升数据类型的规定 [打印本页]

作者: 孙云鹏    时间: 2012-9-3 14:04
标题: 自动提升数据类型的规定
一个类,其中有这么三行
          int a=4125;                         //001
          a=a/1000*1000;
          System.out.println(a);
最后运算后的输出为4000,,,说是a/1000后为小数默认为了int再与1000计算

这是老师教程里的一个例子,,,

但老师说过float和int直接计算,结果是float.根据老师当时的例子,也确实如此
          int a=4125;                                  //002
          System.out.println(a+4.25);
输出为4129.25

但是,如果合写在一起
          int a=4125;
          System.out.println(a/1000*1000);
          System.out.println(a+4.25);
输出为:      4000
                  4129.25

那么,问题是:为什么会有这种截然不同的对代?什么情况下会执行默认,使结果为int?什么情况下又不会执行默认,使结果为float?
难道紧紧是  + -   和  *   /     之间的区别吗?





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2