猜猜关于System.out.println double a=1.123;double b=2;System.out.println(""+a+b);System.out.println(""+a+b);大家猜猜会是什么结果 不要去编译就回答吧!!懂得附上程序理解 感激不尽 ! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不好意思 后面一句改为:System.out.println(a+b+"");有谁知道区别吗? 从左到右进行解析的字符串会把Double类型转成String的形式! 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"我自认为解释的很清楚了分全给我吧 1.1232.03.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这种形式表示。所以就又上面第一行的输出。不知道,我说清楚了没? 第一个输出:1.1232.0第二个输出:3.123输出语句中,如果前面是字符串,后面数数值,则是连接,如System.out.println("a"+10+2);输出a102;如果前面是数值,后面是字符串则先计算在连接字符串,如:System.out.println(10+2+"b")输出12b; 答案是对的 对于第一种输出 做了更深的解释 但是请你说出两者的区别,比如为什么第二种情况没有把a,b看做string 谢谢 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.03.123a100.123100.123可以从基本类型与非基本类型的区别的角度来解释,“”为字符串,则后续的+为字符串连接操作;如果换成'',则变成了基本类型的加操作。 急需帮忙。。。 怎样用代码给系统发送一个按键? String变量和基本类型的变量有什么不同? char与int转化的问题 java直接打印pdf如何实现?进来一起讨论! 大哥帮我个忙。。。 如果import了很多无用的包会不会对性能造成影响? 高分,字节转换的问题? *急呀!!*用jdbc:inetdae7:localhost的驱动,怎样解决"Too many connections"问题?? java web server 初学java遇到的编译问题。 SQL异常,求高手指教
不好意思 后面一句改为:
System.out.println(a+b+"");
有谁知道区别吗?
字符串会把Double类型转成String的形式!
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"我自认为解释的很清楚了
分全给我吧
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这种形式表示。所以就又上面第一行的输出。
不知道,我说清楚了没?
第二个输出:3.123输出语句中,如果前面是字符串,后面数数值,则是连接,如System.out.println("a"+10+2);输出a102;如果前面是数值,后面是字符串则先计算在连接字符串,如:System.out.println(10+2+"b")
输出12b;
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
可以从基本类型与非基本类型的区别的角度来解释,“”为字符串,则后续的+为字符串连接操作;
如果换成'',则变成了基本类型的加操作。