double a=1.123;
double b=2;
System.out.println(""+a+b);
System.out.println(""+a+b);
大家猜猜会是什么结果 不要去编译就回答吧!!
懂得附上程序理解 感激不尽 !

解决方案 »

  1.   


    不好意思 后面一句改为:
    System.out.println(a+b+"");
    有谁知道区别吗?
      

  2.   

    从左到右进行解析的
    字符串会把Double类型转成String的形式!
      

  3.   

    double a=1.123;
    double b=2;
    System.out.println(""+a+b);
    System.out.println(a+b+"");第一个输出是1.1232.0
    原因:符号“+”可以直接做字符串的连接,""+a把a转化为字符串连接,相当与连接后"1.123",然后字符串"1.123"+b,而b为double型  计算机处理为2.0 然后将2.0转化为字符串"2.0"与字符串"1.123"做连接
    最后的结果为String型:"1.232.0"第二个的输出是3.123
    原因:先做a+b的double算法  结果double型:3.123
    然后double型+String型  double转化为String型
    最后的结果为String型:"3.123"我自认为解释的很清楚了
    分全给我吧
      

  4.   

    1.1232.0
    3.123
    第二行就不解释了
    第一行输出的解释:(假设d为double型的)System.out.println("" + d);相当于调用了System.out.print("" + String.valueOf(d)),而String.valueOf(d)正好是Double.toString(d)的返回结果。
    Double.toString(d)的默认格式:如果d为0,则用0.0表示。当然上面的0只是一种形式,即如果d只有整数部分,就用d.0这种形式表示。所以就又上面第一行的输出。
    不知道,我说清楚了没?
      

  5.   

    第一个输出:1.1232.0
    第二个输出:3.123输出语句中,如果前面是字符串,后面数数值,则是连接,如System.out.println("a"+10+2);输出a102;如果前面是数值,后面是字符串则先计算在连接字符串,如:System.out.println(10+2+"b")
    输出12b;
      

  6.   

    答案是对的 对于第一种输出 做了更深的解释 但是请你说出两者的区别,比如为什么第二种情况没有把a,b看做string 谢谢
      

  7.   

    System.out.println("a"+a+b);
    System.out.println(a+b+"a");
    System.out.println('a'+a+b);
    System.out.println(a+b+'a');
    a1.1232.0
    3.123a
    100.123
    100.123
    可以从基本类型与非基本类型的区别的角度来解释,“”为字符串,则后续的+为字符串连接操作;
    如果换成'',则变成了基本类型的加操作。