A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙云鹏 注册黑马   /  2012-9-3 14:04  /  1790 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一个类,其中有这么三行
          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?
难道紧紧是  + -   和  *   /     之间的区别吗?

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马