double num01=-11.6;
double num02=-11.5;
double result01=Math.round(num01);
double result02=Math.round(num02);
System.out.println(result01);//输出-12.0
System.out.println(result02);//输出-11.0
能解析一下输出结果吗!!

解决方案 »

  1.   

    public static long round(double d) {
    return (long) floor(d + 0.5D);
    }相信看了这段你知道原因了
      

  2.   

    相当于(double)Math.floor(a + 0.5)
    第一个-11.6+0.5=-11.1  Math.floor(-11.1)=-12.0
    第二个-11.5+0.5=-11.0  Math.floor(-11.0)=-11.0
    floor返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数
      

  3.   

     return (long) floor(d + 0.5D);
    里面的D是什么来的??