Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带字符串的Java整数加法_Java_String_Addition - Fatal编程技术网

带字符串的Java整数加法

带字符串的Java整数加法,java,string,addition,Java,String,Addition,下面的代码示例说明为什么第一次加法(1/2+1/2)打印0,而第二次加法打印00 System.out.println(1/2+1/2+"=1/2+1/2"); System.out.println("1/2+1/2="+1/2+1/2); 输出: 0=1/2+1/2 1/2+1/2=00整数数学(int 1除以int 2等于int 0,如果希望浮点结果将1和2中的一个或两个转换为浮点类型)和运算顺序,第二个示例是字符串串联。编译器将其转换为 System.out.println(new

下面的代码示例说明为什么第一次加法(1/2+1/2)打印0,而第二次加法打印00

System.out.println(1/2+1/2+"=1/2+1/2");
System.out.println("1/2+1/2="+1/2+1/2); 
输出:

0=1/2+1/2

1/2+1/2=00

整数数学(int 1除以int 2等于int 0,如果希望浮点结果将1和2中的一个或两个转换为浮点类型)和运算顺序,第二个示例是
字符串
串联。编译器将其转换为

 System.out.println(new StringBuilder("1/2+1/2=").append(1/2).append(1/2));
然后你得到

 System.out.println(new StringBuilder("1/2+1/2=").append(0).append(0));
第一条语句“System.out.println(1/2+1/2+”=1/2+1/2”);”打印0,因为从1/2获得的整数值为零。余数被删除,因为1/2等于0.5,所以0.5被删除。 第二条语句“System.out.println(“1/2+1/2=“+1/2+1/2”);”由于连接符号,所以打印出00。在第二条语句中,第一个整数1显示为+1,因此该语句实际上被读取为(+1/2+1/2),这就是它返回00的原因。 如果第二条语句是这样设置的:

System.out.println("1/2+1/2="+ (1/2+1/2));

输出将与第一条语句相同。

java假定除法的结果是整数,因为其成员是整数。对于每个除法的浮动结果(0.5),除数或股息应为浮动类型


System.out.println(“1/2+1/2=“+(1/2.0+1/2.0))

表达式从左到右求值。在第一种情况下,它是
int+int
(即
0
),然后是
int+“=String”
,即
String tmp=“0=String”
。在另一种情况下,您有一个“'String=“+int
”,它变成了
“String=int”
,您可以在它后面附加一个
int`。因此,您可以打印字符串“0”和“0”。

因为它是从左向右的。第一个是
1/2
,它是
0
(整数除法),然后是
1/2
,它又是0。所以
0+0=0
然后它将把它连接到字符串
1/2+1/2
。对于第二个,它将在
字符串上执行concat(1/2)
“1/2+1/2=`操作,其中(1/2)再次为0。然后,对于下一个字符串,它将再次执行concat(1/2)