java吧 关注:1,223,446贴子:12,678,408
  • 14回复贴,共1

求助,求助十万火急

只看楼主收藏回复

设int=5,计算X*=X/=X+X的结果,我自己算得是等于1,电脑算得是0,是我错了还是电脑错了,错哪了?我错哪了


IP属地:北京来自Android客户端1楼2014-04-23 21:45回复
    谁来帮帮我


    IP属地:北京来自Android客户端2楼2014-04-23 21:51
    回复
      JVM有变量区和缓存区。太底层了,初学者玩这个真的很无力。
      细节就不说了,从结果反推JVM规则。每次参与计算的X都是固定值5(int型)。
      (1)x+x,也就是5+5=10。
      (2)x/=10,也就是5/10=0。因为整形。所以0.5向下取整就是0。
      (3)x*=0,也就是5*0=0。所以结果是0。
      --------------------------------------------------------
      float x =5.0f;
      x*=x/=x+x
      System.out.println("y="+y);
      (1)x+x,也就是5.0+5.0=10.0。
      (2)x/=10.0,也就是5.0/10.0=0.5。因为float。所以0.5。
      (3)x*=0.5,也就是5*0.5=2.5。所以结果是2.5。
      --------------------------------------------------------
      如果你想了解原理,请看这个http://tieba.baidu.com/p/2861135702?pid=45816999663&cid=#45816999663


      3楼2014-04-23 22:10
      回复
        没看懂啊帮你顶一个


        IP属地:江西来自Android客户端4楼2014-04-23 22:20
        回复
          5/10=0


          IP属地:重庆5楼2014-04-23 22:24
          回复
            不算也知道是你错了啊,你居然认为电脑错了


            IP属地:北京6楼2014-04-23 22:26
            回复
              百度一下


              来自Android客户端7楼2014-04-23 22:28
              回复
                电脑会错?


                IP属地:上海来自Android客户端8楼2014-04-23 22:40
                回复
                  5/10=0


                  IP属地:上海来自Android客户端9楼2014-04-23 22:41
                  回复
                    先算后面的。。x*=5/10


                    来自Android客户端10楼2014-04-23 22:46
                    回复
                      好思想
                      ﹉ ﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉
                        如果不够悲伤 就无法飞翔 可没有梦想 何必远方....


                      来自Android客户端11楼2014-04-23 23:10
                      回复
                        x/=x+x,注意等号!!——> x=x/(x+x),前面的x*=同理。等号左右不能混到一起,计算完右边赋值给左边。我的理解。


                        来自Android客户端12楼2014-04-24 02:33
                        回复
                          。。的确是0,楼主自己不说自己的计算步骤让别人看哪里错还有,int x = 5;吧,少敲了个x


                          IP属地:广东来自Android客户端13楼2014-04-24 07:56
                          回复
                            5+5=10
                            5/10=0
                            5*0=0


                            来自iPhone客户端14楼2014-04-24 08:55
                            回复
                              5/10=0


                              IP属地:上海来自Android客户端15楼2014-04-24 08:57
                              回复