java吧 关注:1,239,933贴子:12,714,033
  • 18回复贴,共1
如代码,刚刚学到这,自学的,为什么L放置的位置不同输出就不同。
还有这是以什么计算的,正常计算器算出的答案跟这个输出不一样


IP属地:江苏来自Android客户端1楼2018-03-07 20:27回复
    不加L默认是int形


    IP属地:北京来自iPhone客户端2楼2018-03-07 20:30
    收起回复
      都特么发截图,这是问问题的态度?


      IP属地:山东3楼2018-03-07 20:37
      收起回复
        不好意思,补上完整的输出结果


        IP属地:江苏来自Android客户端4楼2018-03-07 20:49
        回复
          *的左结合性以及隐式转换。
          第一个10000 *365 *24 *60 *60相乘结果还是int,溢出了,变成负的,然后和long相乘强转成long,结果肯定不对。
          第二个long在最左边,右边的数在乘之前已经转成long了,结果正确。
          记着以后别光发图,没几个人有耐心督促你发代码,这就是贴吧大牛少的原因,想帮忙都特么费半天劲交流。


          IP属地:山东5楼2018-03-07 21:10
          收起回复
            计算是从左往右执行,整数不加L默认为int行,第一个当执行到10000*365*24*60时发生了溢出,整数运算时,当数值较大时把L加在前面较为稳妥


            来自Android客户端6楼2018-03-09 11:49
            收起回复