java吧 关注:1,290,153贴子:12,818,336
  • 10回复贴,共1

新手求助,为什么是-1?

只看楼主收藏回复

public class jh {
public static void main(String[] args) {
System.out.println((double)(5-3)/3*2-1);
}
}
这是代码,为什么不加DOUBLE就是1,加了就是-1?


1楼2011-11-07 22:22回复
    int 不能转double, 2/5 =-0.4 , 不等0,就等-1
    如果加上double 有精度,结果就为0.33333......


    2楼2011-11-07 22:33
    回复
      2025-12-06 03:57:44
      广告
      不感兴趣
      开通SVIP免广告
      public class Biancheng {
      public static void main(String[] args) {
      System.out.println((5-3)/3*2-1);
      System.out.println((double)(5-3));
      System.out.println((double)(5-3)/3);
      System.out.println((double)(5-3)/3*2);
      System.out.println((5-3));
      System.out.println((5-3)/3);
      System.out.println((5-3)/3*2);
      }
      }
      你这么运行一下看看那
      不加(double)的时候(5-3)/2就是0了


      3楼2011-11-07 22:33
      回复
        写错了 是(5-3)/3 = 0


        4楼2011-11-07 22:34
        回复
          不加(double)的时候(5-3)/2就是0了
          还是1


          5楼2011-11-07 22:34
          回复
            楼主的题是(5-3)/3
            我一下给敲错的(5-3)/2


            6楼2011-11-07 22:47
            回复
              精确度!


              7楼2011-11-07 23:39
              回复
                应该都是-1啊,怎么还有个1呢


                来自手机贴吧8楼2011-11-08 00:03
                回复
                  2025-12-06 03:51:44
                  广告
                  不感兴趣
                  开通SVIP免广告
                  LZ你吓死我,我还以为自己基础那么差心算都错了,运行程序后发现我TMD被你坑了。程序都不自己先运行就来问,学习目的不明确。


                  9楼2011-11-08 00:22
                  回复
                    运行过了,得到结果-1,我不太明白所以来问


                    10楼2011-11-08 08:00
                    回复



                      12楼2011-11-08 14:11
                      回复